发送电子邮件意向选择器

时间:2011-06-10 13:20:08

标签: android email android-intent send

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

您可以明确地调用所需的组件来进行服务。我想使用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
    }
}

不要忘记添加互联网权限