また、同じ問題が発生します
コード:
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 のファイルを添付しているようです。ファイルシステムを確認すると、ファイルはそこにあり、正しいです。画像ファイルを作成するコードは、電子メールで送信する前に十分に完成しています。
魔法の再起動なしでこれを修正した人はいますか(私はすでに試しました)?
アップデート
私にとってのパスはこうあるべきだった
file:///sdcard/DumbDumpers/DumbDumper.jpg
これはルートディレクトリを指すため、追加の / が必要です。つまり、次のようになります。
file:// + /sdcard/DumbDumpers/DumbDumper.jpg
として結合
file:///sdcard/DumbDumpers/DumbDumper.jpg
上記のスニペットでは、次のものが必要です。
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+ sPhotoFileName));
これが役立つことを願っています。デバッグするのに何年もかかりました。