GMail应用程序忽略自定义MIME类型

3

我正在尝试使用意图在安卓设备中发送文件。我启动了一个意图选择器并选择了GMail应用程序。问题是,我无法设置自定义的MIME类型,它总是变成application/octet-stream。

在较旧版本的GMail应用程序(或者可能是较旧版本的Android,如JB之前的版本?)中,做法是可以正常工作的:

Intent sendIntent = new Intent(Intent.ACTION_SEND);
// Add attributes to the intent
sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Send my file");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(path));
sendIntent.setType("application/vnd.mycustommimetype");
context.startActivity(Intent.createChooser(sendIntent, context.getString(R.string.lblShare)));

有人知道如何设置MIME类型以适应GMail / Android的较新版本吗?

经过一些尝试和错误,我发现在GMail应用程序版本4中,这很正常,但在GMail版本4.2中无法设置MIME类型或以另一种方式完成。 有人知道怎么做吗? :/


我有同样的问题。你找到解决方案了吗? - pstoppani
在安卓5.0中仍存在问题。 - Greg Ennis
2个回答

1

很遗憾,您无法做太多事情。由于某些邮件应用程序不知道什么原因,会错误地将自定义文件的MIME类型设置为octet-stream。 您最好的选择是设置自定义MIME类型,但是在接收端,确保您也接受octet-stream。然后,您需要检查文件扩展名,以确保它确实是您的文件,而不是其他不适用于您的应用程序的文件(我假设您也使用了自定义扩展名)。


0
请查看这段代码片段。
final Intent emailIntent = new Intent(Intent.ACTION_SEND); 
emailIntent.setType("text/plain"); 
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"webmaster@website.com"}); 
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "my subject"); 
emailIntent.putExtra(Intent.EXTRA_TEXT, "body text"); 
context.startActivity(Intent.createChooser(emailIntent, "Send mail..."));

问题在于这个例子没有展示如何添加自定义 MIME 类型的附件,它只会发送纯文本电子邮件。 - Mackan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接