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

前端之家收集整理的这篇文章主要介绍了Android发送Intent将sdcard中的照片附加为0长度文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道以前曾问过这个问题的变种
trying-to-attach-a-file-from-sd-card-to-email
但提供的解决方案,即重新启动似乎不适合我.我看到很多小组发帖都支持这个问题.我只能假设链接到问题的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:"));

这是我上次测试时得到的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

我已经对这个问题猛烈抨击了一个多星期了,现在还无法确定是什么问题.有任何想法吗?

解决方法

在发布之前应该在这里做更多的搜索; problem sending an email with an attachment programmatically为我解决了.我只有文件://sdcard/DumbDumpers/DumbDumper.jpg,令人讨厌地看起​​来我已成功附加图像.你需要一个额外/使其工作:
file:///sdcard/DumbDumpers/DumbDumper.jpg
       ^

猜你在找的Android相关文章