Android仅发送电子邮件意图*有时*不发送附件?
在我的应用程序中,用户经常向指定的电子邮件地址提交文件。95%以上的用户似乎没有问题,但这是一个特别的问题,似乎会影响一些用户,而且只是有时。但经常会让人恼火 他们的电子邮件会发送,但没有附件。他们会尝试2、3、4次,最终它会随附件一起发送。从一位用户那里,我了解到他们使用Gmail,在按下“发送”键之前确实看到了附件 用户的Android API级别从19到29不等,介于两者之间。 以下是撰写电子邮件意图的代码:Android仅发送电子邮件意图*有时*不发送附件?,android,android-intent,Android,Android Intent,在我的应用程序中,用户经常向指定的电子邮件地址提交文件。95%以上的用户似乎没有问题,但这是一个特别的问题,似乎会影响一些用户,而且只是有时。但经常会让人恼火 他们的电子邮件会发送,但没有附件。他们会尝试2、3、4次,最终它会随附件一起发送。从一位用户那里,我了解到他们使用Gmail,在按下“发送”键之前确实看到了附件 用户的Android API级别从19到29不等,介于两者之间。 以下是撰写电子邮件意图的代码: public int emailSubmission(File fileToSe
public int emailSubmission(File fileToSend)
{
Uri uri = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
uri = FileProvider.getUriForFile(this, getApplicationContext().getPackageName() + ".provider", fileToSend);
else
uri = Uri.fromFile(fileToSend);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/message");
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"email@email.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "Hello world!");
intent.putExtra(Intent.EXTRA_STREAM, uri);
try
{
startActivity(Intent.createChooser(intent, "Email submission..."));
}
catch (ActivityNotFoundException e)
{
logNonFatalException(e);
return 2;
}
return 1;
}
这看起来很标准,但我不知道是什么导致了这个问题?我也不知道这是否是Gmail特有的。还有什么我可以试着解决这个间歇性的问题吗?我在网上看到的所有“email-intent”Android代码都是这样的,专门用于附件和额外的流以及URI代码。它是什么类型的附件?MIME类型?@Elletlar它是一个ZIP文件,但我不相信我在任何地方为附件设置了任何类型的MIME类型,我以前在任何文档/示例中都没有见过,我不知道。可能是这个尺寸吗?GMail有25MB的限制。是否值得附加一个超出限制,以查看发生了什么?在GMail中模拟不同类型的失败上传,然后发送怎么样?可以查看Thunderbird中缺少附件的电子邮件的message/rfc822结构,例如,View->message Source。对于GMail不确定,但大多数客户端会生成类似multipart/mixed:text/plain和application/zip的内容。还有一件事,Android文件系统很棘手。可能只有当文件位于某个位置(例如外部存储)时才会发生。它是什么类型的附件?MIME类型?@Elletlar它是一个ZIP文件,但我不相信我在任何地方为附件设置了任何类型的MIME类型,我以前在任何文档/示例中都没有见过,我不知道。可能是这个尺寸吗?GMail有25MB的限制。是否值得附加一个超出限制,以查看发生了什么?在GMail中模拟不同类型的失败上传,然后发送怎么样?可以查看Thunderbird中缺少附件的电子邮件的message/rfc822结构,例如,View->message Source。对于GMail不确定,但大多数客户端会生成类似multipart/mixed:text/plain和application/zip的内容。还有一件事,Android文件系统很棘手。可能只有当文件位于某个位置(例如外部存储)时才会发生这种情况。