Android发送Intent将sdcard中的照片附加为0长度文件

Fin*_*lay 7 email android android-intent

我知道这个问题的一个变体在尝试附加文件从SD卡到电子邮件之前被问到 但是提供的解决方案,即重启似乎不适合我.我看到很多小组发帖都支持这个问题.我只能假设链接到问题的OP进行了一些其他更改,可能是允许其代码工作的清单.

我看到的行为是电子邮件意图处理来自SD卡的jpeg附件,但处理它作为0长度文件,在发送时被丢弃.我已经尝试过setType作为jpeg/image和image/jpeg,因为我看到它表达了两种方式.

Intent sendIntent = new Intent(Intent.ACTION_SEND);
    sendIntent.setType("jpeg/image");
    sendIntent.putExtra(Intent.EXTRA_EMAIL, "me@gmail.com");
    sendIntent.putExtra(Intent.EXTRA_SUBJECT, R.string.email_subjectStart + 
            mWhatYouSpotted.getSelectedItem().toString() +
            R.string.email_subjectEnd);
    sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:/"+ sPhotoFileName));
    sendIntent.putExtra(Intent.EXTRA_TEXT, sEmailBody);

    startActivity(Intent.createChooser(sendIntent, "Email:"));
Run Code Online (Sandbox Code Playgroud)

这是我上次测试时得到的adb logcat:

V/DumbDumpersMain(3972):sPhotoUri = file://sdcard/DumbDumpers/DumbDumper.jpg I/ActivityManager(56):开始活动:Intent {action = android.intent.action.CHOOSER comp = {android/com.android. internal.app.ChooserActivity}(有额外的)} I/ActivityManager(56):开始活动:Intent {action = android.intent.action.SEND type = jpeg/image flags = 0x3000000 comp = {com.google.android.gm /com.google.android.gm.ComposeActivityGmail}(有附加内容)} I/ActivityManager(56):开始活动:Intent {action = android.intent.action.SEND type = jpeg/image flags = 0x2800000 comp = {com. google.android.gm/com.google.android.gm.ComposeActivity}(有附加内容)} 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

我一直在用这个问题敲打一个星期超过一个星期,但仍无法确定是什么问题.有任何想法吗?

Fin*_*lay 7

在发布之前应该在这里做更多的搜索; 发送带有附件的电子邮件的问题以编程方式为我解决了.我只有file://sdcard/DumbDumpers/DumbDumper.jpg,令人讨厌地看起​​来我已成功附加图像.你需要一个额外的/工作:

file:///sdcard/DumbDumpers/DumbDumper.jpg
       ^
Run Code Online (Sandbox Code Playgroud)