Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.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_Android Intent - Fatal编程技术网

Android仅发送电子邮件意图*有时*不发送附件?

Android仅发送电子邮件意图*有时*不发送附件?,android,android-intent,Android,Android Intent,在我的应用程序中,用户经常向指定的电子邮件地址提交文件。95%以上的用户似乎没有问题,但这是一个特别的问题,似乎会影响一些用户,而且只是有时。但经常会让人恼火 他们的电子邮件会发送,但没有附件。他们会尝试2、3、4次,最终它会随附件一起发送。从一位用户那里,我了解到他们使用Gmail,在按下“发送”键之前确实看到了附件 用户的Android API级别从19到29不等,介于两者之间。 以下是撰写电子邮件意图的代码: public int emailSubmission(File fileToSe

在我的应用程序中,用户经常向指定的电子邮件地址提交文件。95%以上的用户似乎没有问题,但这是一个特别的问题,似乎会影响一些用户,而且只是有时。但经常会让人恼火

他们的电子邮件会发送,但没有附件。他们会尝试2、3、4次,最终它会随附件一起发送。从一位用户那里,我了解到他们使用Gmail,在按下“发送”键之前确实看到了附件

用户的Android API级别从19到29不等,介于两者之间。

以下是撰写电子邮件意图的代码:

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文件系统很棘手。可能只有当文件位于某个位置(例如外部存储)时才会发生这种情况。