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

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

【问题讨论】:

    标签: android email android-intent send


    【解决方案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】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-01-31
          • 1970-01-01
          • 2010-12-20
          • 2013-02-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多