Android电子邮件意向-收到的文件附件为零字节



我在应用程序中设置了一个电子邮件意向。我还附上了一个二进制文件。当电子邮件编辑器打开时,它会显示有多少字节。但当我收到电子邮件时,它是零字节!

我在一个单独的项目上做过这件事,以前也做过,所以我只是把代码复制到新项目中。

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("application/octet-stream");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { "" });
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "message here");
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "subject");
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///data/data/com.example.app/files/filename.extension"));

我在姜饼和果冻豆上测试过。我使用了设备的默认电子邮件编辑器(Galaxy Y和HTC One)。

同样,即使电子邮件编辑器显示一些字节(即306字节),接收到的附件也是零字节

-------更新--------

所以我创建了另一个项目并测试了下面的代码。它发送一封带有附件的电子邮件。但当我在项目中使用相同的代码时,收到的电子邮件是零字节的。您可以看到,我甚至测试了文件对象是否为null,并且在运行时是否为null。

File file = new File(File.getFilePath(context, "myfile.code"));
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("message/rfc822");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { "" });
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Blah...blah...");
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "File sent");
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); //I also used file:///data/data/com.example.emailfile/files/myfile.code and didn't work
if(file == null){
Log.d("----FILE----", "NULL");
}else{
Log.d("----FILE----", "Not Null");
}

这让我疯了。。。我在我的项目上做了任何防止附件的设置或设置?

顺便说一句,运行此操作的活动只有单选按钮和一个调用电子邮件意图的按钮。我正在使用gmail或outlook发送电子邮件。

终于想通了。

当然,首先要确保文件是MODE_WORLD_READABLE。

其次,Gmail似乎无法访问内部存储或应用程序中的文件。此外,在此讨论http://code.google.com/p/android/issues/detail?id=18872

它设法使用outlook发送和附件。

相关内容

  • 没有找到相关文章

最新更新