2012-12-13 39 views
3

我试图在Android中使用意图发送文件。我启动了一个意图选择器并选择了GMail应用程序。问题是我无法设置我的自定义MIME类型,它总是成为应用程序/八位字节流。 (?也许老版本的Android,像预JB)在GMail应用程序中忽略自定义MIME类型

在旧版本的Gmail应用的它工作得很好做这样的:

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类型,或者它以另一种方式来完成。任何人都知道? :/

+0

我有同样的问题。你找到了解决方案吗? – pstoppani

+0

Android 5.0中仍然存在问题 –

回答

0

请检查此代码段

final Intent emailIntent = new Intent(Intent.ACTION_SEND); 
emailIntent.setType("text/plain"); 
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); 
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "my subject"); 
emailIntent.putExtra(Intent.EXTRA_TEXT, "body text"); 
context.startActivity(Intent.createChooser(emailIntent, "Send mail...")); 
+0

问题是,此示例不显示如何使用自定义MIME类型添加附件,它只会发送纯文本电子邮件。 – Mackan

1

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

相关问题