我看到關於此問題的其他問題,嘗試了他們的答案,但不工作。 我試圖使用developer.android.com的第二種方法。 (第二個白色子彈)。 我用適當的權限將圖像保存到應用程序內部存儲器。 圖像(位圖)已成功保存,但我無法將其添加到新的意圖中,以便共享。 這裏是我的代碼:無法附加位圖圖像。 Android
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("*/*");//Attach all types (images/text)
FileOutputStream fos;
try{
fos = openFileOutput(myfilename, Context.MODE_WORLD_READABLE);
mybitmap.compress(Bitmap.CompressFormat.PNG, 90, fos);
fos.flush();
//Image is stored successfully (checked data/data/mypackage/files/myfilename)
Uri uri = Uri.fromFile(getFileStreamPath(myfilename));
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
}
catch (Exception e){
// noth
//Log.e(TAG, e.getStackTrace().toString());
}
shareIntent.putExtra(Intent.EXTRA_TEXT, "some text also");
return shareIntent;
}
應用程序說,不能附加媒體項目。 Gmail似乎附加了項目,但郵件發送時什麼都不顯示!
另外,uri.getPath返回我: /數據/數據/ mypackage的/文件/ mYfILEname的, 這是正確的
任何想法? 謝謝!
編輯: 使用SD卡的修改代碼。 ,但仍沒有得到它的工作:
File imgDir;
if (android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED))
imgDir = new File(
android.os.Environment.getExternalStorageDirectory(),
".MyAppName/Images");
else imgDir = MyActivity.this.getCacheDir();
if (!imgDir.exists()) imgDir.mkdirs();
File output = new File(imgDir, myFilename);
OutputStream imageFileOS;
try{
Uri uriSavedImage = Uri.fromFile(output);
imageFileOS = getContentResolver().openOutputStream(
uriSavedImage);
bitmapBookCover.compress(Bitmap.CompressFormat.PNG, 90,
imageFileOS);
imageFileOS.flush();
imageFileOS.close();
//Again image successfully saved
shareIntent.putExtra(Intent.EXTRA_STREAM, uriSavedImage);
}
catch (Exception e){
// noth
}
我認爲這是不可能的從試過內部存儲 – eladr 2012-08-05 07:01:25
武官文件與SD卡,仍然不能得到它的工作 – Paschalis 2012-08-05 07:29:39
@Paschalis你成功了嗎? – Huaying 2016-11-04 09:55:02