发送电子邮件时,没有应用程序可以执行此操作
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)”为我解决了这个问题。
希望我的回答对读者有所帮助
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)”为我解决了这个问题。 希望我的回答对读者有所帮助