7

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

我看到的行为是电子邮件意图处理来自 sdcard 的 jpeg 附件,但将其作为 0 长度文件处理,该文件在发送时被丢弃。我已经尝试 setType as 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):开始活动: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:内容://gmail-ls/labels/me@gmail.com( null, null) D/Gmail (2507): URI FOUND:file://sdcard/DumbDumpers/DumbDumper.jpg

一个多星期以来,我一直在用头撞这个,但仍然无法确定出了什么问题。有任何想法吗?

4

2 回答 2

7

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

file:///sdcard/DumbDumpers/DumbDumper.jpg
       ^
于 2009-08-18T19:35:37.897 回答
4

您的意图类型错误。它应该是

sendIntent.setType("image/jpg");
于 2010-06-07T14:22:20.110 回答