我現在用的是DownloadManager使用意圖來設置圖像作爲壁紙的圖像下載到系統的畫廊,然後在廣播接收器(一旦下載成功)。從文件URI獲取內容URI?
一切都工作正常,但最近對4.4我開始在圖片/谷歌+應用一個例外,因爲它期待一個內容URI,而不是一個文件URI。
所以我的問題是,如果有人知道如何轉換一個完整的文件路徑/ URI(文件://)到內容風格的URI(內容://)?
對不起,我沒有源代碼,我是從具有源電腦了,但我希望這個問題是有道理的,沒有它,得到一個完整的路徑內容風格URI。
編輯:
的圖像被複制到系統的畫廊或媒體庫,而不是救了我的應用程序內部的StoreAge內。
這裏是什麼,我想轉換一個例子:
file:///storage/emulated/0/Pictures/Rockstar/image.jpg
到
content://media/internal/images/media/445
編輯2:
下面是我從Google+應用得到錯誤:
04-21 10:50:35.090: E/AndroidRuntime(7220): FATAL EXCEPTION: main
04-21 10:50:35.090: E/AndroidRuntime(7220): Process: com.google.android.apps.plus, PID: 7220
04-21 10:50:35.090: E/AndroidRuntime(7220): java.lang.RuntimeException: Unable to resume activity
{com.google.android.apps.plus/com.google.android.apps.photos.phone.SetWallpaperActivity}:
java.lang.IllegalArgumentException: Image URI must be of the content scheme type
這裏是我用來讓用戶設置牆紙代碼:
String uriString = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
Uri u = Uri.parse(uriString);
Intent wall_intent = new Intent(Intent.ACTION_ATTACH_DATA);
wall_intent.setDataAndType(u, "image/*");
wall_intent.putExtra("mimeType", "image/*");
Intent chooserIntent = Intent.createChooser(wall_intent,
"Set As");
chooserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
context.startActivity(chooserIntent);
}
其中uriString
是:
file:///storage/emulated/0/Pictures/Rockstar/image.jpg
THX您( – NickUnuchek