【问题标题】:Android - Is there a foolproof way to only show possible EMAIL clients?Android - 有没有一种万无一失的方法来只显示可能的 EMAIL 客户端?
【发布时间】:2012-01-01 11:46:23
【问题描述】:

在 android 中,您可以通过 Intent.ACTION_SEND 意图发送电子邮件,但这会显示消息传递和其他内容(即使您指定了 text/plain 类型)。

如果您希望用户只看到可能的 EMAIL 客户端,是否有一种万无一失、可靠的方法来做到这一点?

【问题讨论】:

  • 您目前使用text/plain 作为您的intent.setType() 吗?
  • 是的 - 当我将其添加到此处的消息中时,我从记忆中记错了 - 我将更新问题以免分散人们的注意力。

标签: android email android-intent


【解决方案1】:

使用ACTION_SENDTOmailto: Uri 指向您想要的电子邮件地址。

如果您没有电子邮件地址,那么您的应用不应试图限制用户使用电子邮件。请让用户share what the user wants用户想要什么。

顺便说一句,MIME 类型是text/plain,而不是plain/text。有一个 ACTION_SEND 的 sn-p 浮动,它的 MIME 类型错误。

【讨论】:

  • 我认为 mailto(当您有电子邮件地址时)不会以奇怪的方式在野外闯入...至于当我没有电子邮件地址时...我'恐怕我仍然希望它通过电子邮件发送,基于上下文和材料。哑剧类型 - 谢谢 CW - 我从记忆中倒退了 - doh
  • 刚刚看到你那里有一个链接,cw,所以我去看看。好吧,我知道在一种情况下我不会有电子邮件地址,但我知道它需要根据大小和内容通过电子邮件发送。但是,如果用户想以这种方式发送短信,另一种情况在短信的上下文中可以很好地工作。
  • @user655489:“但我知道它需要根据大小和内容通过电子邮件发送”——用户可以通过 DropBox 分享,或上传到 Evernote,或使用任意数量的其他应用程序和在线存储/共享选项。大可能意味着“不是短信”,短信客户端可能会告诉他们。但大并不意味着电子邮件。
  • 嗯,我承认我没有考虑过!我去看看这两个能不能处理有限的 html 东西 android 可以发送它的 spannable 东西。
  • @user655489:如果您要发送 HTML,请使用 text/html
【解决方案2】:

简短的回答是否定的,任何应用程序都可以列出自己。系统会寻找与应用程序可以处理的匹配的意图过滤器。通过实验,您可以减少声称可以处理意图的应用程序的数量,或者您可以尝试制定明确的意图,直接指向 GMail 或电子邮件等。

【讨论】:

    【解决方案3】:

    您是否尝试过将message/rfc822 作为 MIME 类型?
    见第一条评论:http://mobile.tutsplus.com/tutorials/android/android-email-intent/
    另请参阅:Send an email in Android selecting only email apps AND specifying attachment mime type

    这缩小到我手机中的 Gmail 和蓝牙。 message/partial 似乎也是如此。

    我不知道这是否适用于所有手机,但似乎是一个可行的替代方案。


    这是测试代码:

    private void sendEmail()
    {
        Intent intent = new Intent(Intent.ACTION_SEND);
    
        intent.putExtra(Intent.EXTRA_EMAIL, "foo.bar@invalid.com");
        intent.putExtra(Intent.EXTRA_SUBJECT, "From Test app");
        intent.putExtra(Intent.EXTRA_TEXT, "Test test test");
        intent.setType("message/rfc822");
    
        startActivity(intent);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-31
      • 2012-03-15
      • 2022-01-07
      • 1970-01-01
      • 2022-09-23
      • 2016-11-11
      • 2011-06-12
      • 2022-07-28
      相关资源
      最近更新 更多