发送电子邮件时,没有应用程序可以执行此操作

时间:2015-02-18 16:11:45

标签: android android-intent

Intent sendIntent = new Intent(Intent.ACTION_SEND);
            sendIntent.putExtra(Intent.EXTRA_TEXT, text.getText());
            sendIntent.setType("message/rfc822");
            startActivity(Intent.createChooser(sendIntent, "Send email with"));

这是我的代码。

我在模拟器中尝试了发送邮件。但它显示没有应用程序可以执行此操作。如果有人知道意味着告诉我

提前致谢

6 个答案:

答案 0 :(得分:9)

您需要使用text/plain

intent.setType("text/plain");

此外,Intent.ACTION_SEND用于共享,您可能希望使用Intent.ACTION_SENDTO仅获取电子邮件客户端列表,或避免共享Facebook,Twitter等应用程序。 / p>

答案 1 :(得分:2)

如果您想发送邮件,有更好的方法:使用Action.SEND_TO

Intent sendIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:sample@mail.com"));
sendIntent.putExtra(Intent.EXTRA_TEXT, text.getText());

这将缩小搜索列表的范围。

注意:确保您已在模拟器上设置了电子邮件帐户,否则电子邮件应用程序将不在处理程序列表中,并且您将获得例外。

答案 2 :(得分:0)

这意味着没有注册处理此类意图的应用程序。

编辑: 尝试将意图类型设置为“text / plain”

emailIntent.setType("text/plain");

和/或设置EXTRA_EMAIL以设置电子邮件的内容

sendIntent.putExtra(Intent.EXTRA_EMAIL, text.getText());

答案 3 :(得分:0)

这通常意味着目前没有安装任何应用程序,它可以理解您正在进行的请求。

在这种情况下,我会猜测模拟器上没有安装电子邮件应用程序?或者可能它还没有设置好。

答案 4 :(得分:0)

在尝试上述评论中提到的所有内容后,如果找不到您的解决方案,只需在模拟器中的默认电子邮件中设置电子邮件即可。它对我有用。

答案 5 :(得分:0)

private fun sendMail(recipient: String, subject: String, message: String)
{
    val mIntent = Intent(Intent.ACTION_SEND)
    mIntent.data = Uri.parse("mailto:sample@gmail.com")
    mIntent.type = "text/plain"
    mIntent.putExtra(Intent.EXTRA_EMAIL, arrayOf(recipient))
    mIntent.putExtra(Intent.EXTRA_SUBJECT, subject)
    mIntent.putExtra(Intent.EXTRA_TEXT, message)
    try {
        startActivity(Intent.createChooser(mIntent, "Choose email client"))
        Toast.makeText(this, "Hey !! We received your order :) ", Toast.LENGTH_LONG).show()
    }catch (e:Exception){
        e.printStackTrace()
        Toast.makeText(this, "Sorry your order could not be sent :( ", Toast.LENGTH_LONG).show()
    }
}

这段代码对我有用,我遇到了同样的问题, 更改为:“ val mIntent = Intent(Intent.ACTION_SENDTO)” “ val mIntent = Intent(Intent.ACTION_SEND)”为我解决了这个问题。 希望我的回答对读者有帮助