3

我正在尝试使用意图在 android 中发送文件。我启动了一个意图选择器并选择了 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 类型或以其他方式完成。有谁知道怎么做?:/

4

2 回答 2

1

不幸的是,您无能为力。天知道是什么原因,一些电子邮件应用程序错误地将自定义文件的 mime 类型设置为八位字节流。最好的办法是设置您的自定义 mime 类型,但随后,在接收端,请确保您也接受八位字节流。然后,您需要检查文件扩展名以确保它确实是您的文件,而不是其他文件,不适用于您的应用程序(我假设您也在使用自定义扩展名)。

于 2014-04-10T08:46:21.810 回答
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..."));
于 2012-12-14T04:41:49.903 回答