我打電話意圖分享圖像。這適用於大多數提供商,但與Google+。 Google+會在沒有圖片的情況下打開帖子活動,並顯示「您只能發佈存儲在您設備上的照片」。與此同時。分享Google+的意圖無法訪問圖像
File f = storeImage(image); // f = /data/data/com.myapp/files/1333070776978.jpg
Uri uri = Uri.fromFile(f);
Intent share = new Intent(Intent.ACTION_SEND);
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
share.setType("image/jpeg");
share.putExtra(Intent.EXTRA_STREAM, uri);
share.putExtra(Intent.EXTRA_TITLE,"Share that title");
share.putExtra(Intent.EXTRA_SUBJECT,"Share that subject");
share.putExtra(Intent.EXTRA_TEXT,"Check that out...");
share.putExtra("sms_body", "sms body");
startActivity(Intent.createChooser(share, "Share Image"));
我保存圖像與
Context.openFileOutput(fileName, Context.MODE_WORLD_READABLE);
我的理解是,通過設置FLAG_GRANT_READ_URI_PERMISSION,我給Google+的這個文件具體的訪問。
它工作時,我將圖像存儲到MediaStore,但我其實不想混亂用戶圖像庫。
ContentValues values = new ContentValues(2);
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.Media.DATA, f.getAbsolutePath());
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
任何建議表示讚賞
西蒙
你總是可以檢查什麼權限的文件和文件夾的擁有,尋找到使用調試工具在Eclipse中的文件系統。只是爲了確保你沒有缺乏權限。 – erbsman 2012-03-30 10:24:28
文件權限看起來不錯(-rw-rw-r--)。無論如何,其他應用程序,如短信應用程序或Facebook可以訪問和共享圖像就好了。 – SimonSays 2012-03-30 18:14:57
如果使用Context.getCacheDir()將圖像存儲在緩存目錄中,該怎麼辦? – Freddroid 2012-03-31 17:17:00