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

No application can perform this action, when send email

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"));

这是我的代码。

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

提前致谢

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

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

emailIntent.setType("text/plain");

and/or设置EXTRA_EMAIL设置邮件内容

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

这通常意味着当前没有安装理解您发出的请求的应用程序。

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

您需要使用text/plain

intent.setType("text/plain");

此外,Intent.ACTION_SEND 是为共享而生的,您可能希望使用 Intent.ACTION_SENDTO 来仅获取电子邮件客户端列表,或者避免共享应用程序,例如 Facebook、Twitter 等.

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

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

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

注意: 确保你已经在模拟器上设置了电子邮件帐户,否则电子邮件应用程序将不会在处理程序列表中,你会得到异常。

这对我有用

Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{"youremail@yahoo.com"});          
email.putExtra(Intent.EXTRA_SUBJECT, "subject");
email.putExtra(Intent.EXTRA_TEXT, "message");
email.setType("message/rfc822");
startActivity(Intent.createChooser(email, "Choose an Email client :"));

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

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)”为我解决了这个问题。 希望我的回答对读者有所帮助