Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android电子邮件意图-收到的文件附件为零字节_Android_Email_Android Intent_Attachment - Fatal编程技术网

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

Android电子邮件意图-收到的文件附件为零字节,android,email,android-intent,attachment,Android,Email,Android Intent,Attachment,我在我的应用程序中设置了电子邮件意图。我还附加了一个二进制文件。当电子邮件编辑器打开时,它会显示有多少字节。但当我收到电子邮件时,它是零字节 我已经在一个单独的项目中完成了这项工作,而且它以前工作过,所以我只是将代码复制到新项目中 Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("application/octet-stream"); emailIntent.putE

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

我已经在一个单独的项目中完成了这项工作,而且它以前工作过,所以我只是将代码复制到新项目中

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对象是否为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发送电子邮件。

终于明白了

首先,当然要确保文件是可读的

第二,Gmail似乎无法访问应用程序中的内部存储或文件。还有,这里讨论


它成功地使用outlook发送和删除了附件。

已经说了默认的电子邮件编辑器。你是说Gmail应用程序?制造商默认的电子邮件编辑器。我在Gmail和Outlook上试过,但都没有成功。我在另一个项目上做过这项工作,以前也成功过,所以我把代码复制到了新项目中。你说这句话是什么意思?在你移植到另一个项目之前,同样的代码工作正常吗?如果上面同样的代码以前对你工作过,那么可能是你错过了其他东西,如果它从来没有对你工作过,那么我可以帮助你。因为我对你将文件附加到电子邮件的方式很怀疑。