【问题标题】:Force android to pick an app for email sending强制 android 选择一个应用程序来发送电子邮件
【发布时间】:2012-06-15 07:01:21
【问题描述】:

我实现了从我的应用程序发送电子邮件。

我使用this quesion on SO 作为实现此目标的指南,请注意在有人说要使用setType("message/rfc822"); 的答案中,因为它会过滤掉所有其他侦听ACTION_SEND 意图的电子邮件客户端。

我的问题是我的 Galaxy Tab 10.1 仍然有两个应用程序来监听意图,所以仍然会打开一个弹出窗口,询问我要使用什么电子邮件客户端。 (gMail 应用程序或默认的电子邮件应用程序)。我不能卸载一个,所以列表不会弹出,但我也不想。

有没有办法强制 android 立即使用列表中的第一个?那么用户可以跳过弹出对话框吗?

这是我当前的代码:

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");

i.putExtra(Intent.EXTRA_SUBJECT, context.getString(R.string.notes_from_pf));
i.putExtra(Intent.EXTRA_TEXT  , context.getString(R.string.mail_message));
try {
    startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(context, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}

【问题讨论】:

  • 是什么让您认为用户想要“列表中的第一个”?
  • 此外,您正在使用的代码(由 Intent.createChooser() 调用提供)强制用户必须做出选择,即使他们设置了较早的默认邮件客户端。为什么你一边强迫用户做出选择,一边抱怨用户必须做出选择?
  • @CommonsWare 我完全忽略了...
  • 原来如此,我现在只被问过一次,可以选择默认选择这个客户端...这对我来说没问题,现在感觉有点愚蠢...

标签: android email android-intent


【解决方案1】:

查询应用程序,获取已注册以发送操作并选择一个应用程序的列表,创建意图,设置类名并启动您的意图,您就完成了

【讨论】:

    【解决方案2】:

    如果您想找出哪些应用可以处理该意图,您可以使用:

    getPackageManager().queryIntentActivities...

    当你找到你想要的应用时,设置意图的包以匹配应用的包。

    【讨论】:

      【解决方案3】:
      Intent email = new Intent(Intent.ACTION_SEND);
      email.setType("text/plain");
      email.putExtra(Intent.EXTRA_EMAIL,  "" );
      
      email.putExtra(Intent.EXTRA_SUBJECT, "");
      
      email.putExtra(Intent.EXTRA_TEXT, prsnname + " :   "+ data  +"\n\n" +  linkdata);
      
      
      try
      {
      
      activity.startActivity(Intent.createChooser(email, "Send mail..."));
      
      }
      catch (android.content.ActivityNotFoundException ex) 
      {
          Toast.makeText(activity, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
      }
      

      【讨论】:

        猜你喜欢
        • 2011-11-07
        • 2011-08-06
        • 1970-01-01
        • 2013-10-09
        • 2011-08-16
        • 2012-05-10
        • 1970-01-01
        相关资源
        最近更新 更多