发送电子邮件意图选择器

Posted

技术标签:

【中文标题】发送电子邮件意图选择器【英文标题】:Send email intent chooser 【发布时间】:2011-09-12 12:14:09 【问题描述】:

当我想通过设备上的电子邮件客户端发送一些文本时,是否可以在我在意图中设置电子邮件文本之前查看已选择的电子邮件客户端(例如 Gmail 或 Yahoo 邮件)?

【问题讨论】:

【参考方案1】:

您可以显式调用所需的组件来提供服务。我想使用 gmail 发送电子邮件,例如

public void sendGmail(Activity activity, String subject, String text) 
    Intent gmailIntent = new Intent();
    gmailIntent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
    gmailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
    gmailIntent.putExtra(android.content.Intent.EXTRA_TEXT, text);
    try 
      activity.startActivity(gmailIntent);
     catch(ActivityNotFoundException ex) 
      // handle error
    

别忘了添加互联网权限

【讨论】:

【参考方案2】:

使用默认意图选择器无法完成此操作。但是,您可以查询哪些活动可以响应您的意图:

PackageManager manager = getPackageManager();
List<ResolveInfo> ri = manager.queryIntentActivities(intent,
                               PackageManager.GET_RESOLVED_FILTER);

然后您可以继续在列表中显示它,观察用户做出的选择并执行一些特定于选择的意图。

【讨论】:

【参考方案3】:

很遗憾,没有。当您启动选择器意图时,由用户决定去哪里/使用什么。所有数据都必须在启动意图之前设置,并且在活动返回之前您无法控制。换句话说,您不能根据他们在对话框中的选择来影响消息的文本。

【讨论】:

以上是关于发送电子邮件意图选择器的主要内容,如果未能解决你的问题,请参考以下文章

查找发送电子邮件的解决方案

从联系人选择器意图中选择电子邮件、姓名和电话号码

通过意图打开邮件应用程序不会打开选择器

无法通过电子邮件意图发送图像附件

Android:使用电子邮件意图发送电子邮件,可以在发送之前更改消息吗?

尝试使用意图发送电子邮件时崩溃(Kotlin)