簡體   English   中英

如何在DELPHI XE8中從MMS打開圖像

[英]How to open image from MMS in DELPHI XE8

我有一個可以自動讀取傳入MMS消息的應用程序。

當他發送帶有附件的郵件(圖片)時,我得到了保存圖片的目錄:

.
.
.
uri:= StrToJURI('content://mms/part');
uriQuery:= StringToJString('mid = 122');
cursor:= SharedActivity.getContentResolver.query(uri, nil, uriQuery, nil, nil);
imgPath:= JStringToString(cursor.getString(cursor.getColumnIndex(StringToJString('_data'))));
.
.
.

imgPath例如:“ /data/data/com.android.providers.telephony/app_parts/PART_1440873132846_image.jpeg ”。

當我嘗試打開此文件時,報告錯誤:' 無法打開文件-權限被拒絕 '。

有人建議我如何打開此文件(彩信中的圖片)?

您正在嘗試打開屬於另一個應用程序的文件。 除非其他應用明確共享文件,否則Android通常不允許這樣做。 在這種情況下,顯然沒有這樣做。

您可以嘗試使用的是其他content: URL根據MMS消息中的ID(而不是實際文件名)訪問文件:

uri := StrToJURI('content://mms/part');
uriQuery := StringToJString('mid = 122');
cursor := SharedActivity.getContentResolver.query(uri, nil, uriQuery, nil, nil);
partID := StringToString(cursor.getString(cursor.getColumnIndex(StringToJString('_id'))));

uri := StrToJURI('content://mms/part/' + partID);
is := SharedActiviy.getContentResolver.openInputStream(uri); // returns a JInputStream 
try
  bitmap := TJBitmapFactory.JavaClass.decodeStream(is); // returns a JBitmap
finally
  is.close;
end;
// use bitmap as needed...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM