我尝试了在这里找到的代码:
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);
我认为这里真正的问题是您在官方模拟器上运行并且您的意图与任何内容都不匹配。
根据我的测试,当意图的 URI (from 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
。)