Также получаю ту же проблему
Код:
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("image/jpeg");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]
{"me@gmail.com"});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
"Test Subject");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,
"go on read the emails");
Log.v(getClass().getSimpleName(), "sPhotoUri=" + Uri.parse("file:/"+ sPhotoFileName));
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:/"+ sPhotoFileName));
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
Из adb logcat:
V/DumbDumpersMain( 3972): sPhotoUri=file://sdcard/DumbDumpers/DumbDumper.jpg
I/ActivityManager( 56): Starting activity: Intent { action=android.intent.action.CHOOSER comp={android/com.android.internal.app.ChooserActivity} (has extras) }
I/ActivityManager( 56): Starting activity: Intent { action=android.intent.action.SEND type=jpeg/image flags=0x3000000 comp={com.google.android.gm/com.google.android.gm.ComposeActivityGmail} (has extras) }
I/ActivityManager( 56): Starting activity: Intent { action=android.intent.action.SEND type=jpeg/image flags=0x2800000 comp={com.google.android.gm/com.google.android.gm.ComposeActivity} (has extras) }
D/gmail-ls( 120): MailProvider.query: content://gmail-ls/labels/me@gmail.com(null, null)
D/Gmail ( 2507): URI FOUND:file://sdcard/DumbDumpers/DumbDumper.jpg
Похоже, что поставщик электронной почты прикрепляет файл 0 длины. Когда я проверяю файловую систему, файл там и исправляется. Код, который создает файл изображения, хорошо подготовлен до попытки отправить его по электронной почте.
Кто-нибудь исправил это без магических перезагрузок (я уже пробовал)?
С уважением,
Fin
Обновление
Путь для меня должен был быть
file:///sdcard/DumbDumpers/DumbDumper.jpg
вам нужны дополнительные /
, так как это указывает на корневой каталог, то есть:
file://
+ /sdcard/DumbDumpers/DumbDumper.jpg
объединено как
file:///sdcard/DumbDumpers/DumbDumper.jpg
В приведенном фрагменте необходимо:
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+ sPhotoFileName));
Надеюсь, это поможет. Отладка заняла у меня целую вечность.
С уважением,
Finlay