尽管安装了gmail,但发送电子邮件的意图在某些设备上打开驱动器而不是gmail

时间:2013-05-11 06:55:27

标签: android android-intent gmail

我有以下问题。

启动这样的意图时:

   final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);

   emailIntent.setType("text/plain");
   emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "hello");     
   emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Text");
   // uris is a ArrayList<Uri> that links to some images in the asset folder
   // everything works fine with those attachments on the nexus 4
   emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

   this.startActivity(emailIntent);

它向我展示了我的Nexus 4上的一系列合适的应用程序(运行4.2.2)

如果我在Nexus 7(运行4.2.2)上运行代码,它并没有显示使用gmail的选项,即使它已安装并正常运行。

有关于此的任何想法吗?

编辑:我能想到的唯一真正的区别是,nexus 7在设备上设置了2个用户帐户。这可能与问题有关吗?

1 个答案:

答案 0 :(得分:1)

尝试这个:这对我有用!根据您的需要进行修改!

Uri file_uri = Uri.fromFile(fileLocation);
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");
i.putExtra(Intent.EXTRA_SUBJECT, "");
i.putExtra(Intent.EXTRA_TEXT   , "");
i.putExtra(Intent.EXTRA_STREAM, file_uri);
try {
    startActivity(Intent.createChooser(i, "Complete Action Using"));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(ExportReport.this, "There are no email clients installed",Toast.LENGTH_SHORT).show();
}