我在我的应用程序中设置了电子邮件意图。我还附上了一个二进制文件。当电子邮件编辑器打开时,它会显示多少字节。但是当我收到电子邮件时,它是零字节!
我已经在一个单独的项目中完成了这项工作,并且它之前工作过,所以我只是将该代码复制到新项目中。
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 字节),接收到的附件也是零字节
- - - -更新 - - - - -
所以我创建了另一个项目并测试了下面的代码。它发送带有附件的电子邮件。但是当我在我的项目中使用相同的代码时,收到的电子邮件是零字节的。你可以看到我什至测试了文件对象是否为空并且在运行时它不为空。
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 发送电子邮件。