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"));
这是我的代码。
我在模拟器中尝试了发送邮件。但它显示没有应用程序可以执行此操作。如果有人知道意味着告诉我
提前致谢
答案 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)”为我解决了这个问题。 希望我的回答对读者有帮助