我尝试了在这里找到的代码:
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", "testemail@gmail.com", null)); startActivity(intent);
但我在屏幕上收到一条消息,上面写着“不支持的操作”。有什么办法可以让它正常工作吗?
我尝试了在这里找到的代码:
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", "testemail@gmail.com", null)); startActivity(intent);
但我在屏幕上收到一条消息,上面写着“不支持的操作”。有什么办法可以让它正常工作吗?
/* Create the Intent */
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
/* Fill it with Data */
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"to@email.com"});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Text");
/* Send it off to the Activity-Chooser */
context.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
关键点:使用EXTRA_EMAIL
来设置你的电子邮件地址,并在用户配置了多个电子邮件客户端时使用createChooser()
。
你尝试过了吗?
Intent intent = new Intent(
Intent.ACTION_SENDTO,
Uri.parse("mailto:testemail@gmail.com")
);
startActivity(intent);
setData()
)没有匹配任何内容,并且你正在运行其中一个官方Android模拟器时,会出现这个问题。这似乎不会发生在实际设备上,因此不应该是一个现实世界中的问题。ComponentName emailApp = intent.resolveActivity(getPackageManager());
ComponentName unsupportedAction = ComponentName.unflattenFromString("com.android.fallback/.Fallback");
boolean hasEmailApp = emailApp != null && !emailApp.equals(unsupportedAction);
com.android.fallback.FallbackActivity
。)如果您使用Kotlin,请使用此扩展。
fun Context.sendEmailTo(email:String){
Intent(Intent.ACTION_SENDTO).apply {
data = Uri.parse("mailto:$email")
startActivity(this)
}
}