在GMail应用程序中忽略自定义mime类型

时间:2012-12-13 23:47:10

标签: android gmail mime-types

我正在尝试使用意图在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?

在som试验和错误之后,我看到在GMail应用程序版本4中这很好用,但在GMail版本4.2中,不可能设置mime类型或以其他方式完成。谁知道怎么样? :/

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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..."));