有一次,我的应用需要打开一个电子邮件客户端。
我发送意图打开它,一切正常。
但是当用户没有安装电子邮件客户端时,他们会收到“不支持的操作”错误消息。
有没有办法捕捉用户何时收到该错误,以便我可以给他们一个指示他们安装 gmail 的对话框?
我认为这只发生在官方的安卓模拟器上;出于某种原因,他们将活动解析为com.android.fallback.Fallback
活动,这显示了这个神秘的信息。
您可以通过运行以下代码来捕捉这种情况:
ComponentName emailApp = intent.resolveActivity(getPackageManager());
ComponentName unsupportedAction = ComponentName.unflattenFromString("com.android.fallback/.Fallback");
boolean hasEmailApp = emailApp != null && !emailApp.equals(unsupportedAction);
怎么用
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_EMAIL, new String[] { email });
i.putExtra(Intent.EXTRA_SUBJECT, "Delivery Confirmation");
i.putExtra(Intent.EXTRA_TEXT, emailcontent + "\n\n\n" + sign);
try {
startActivity(Intent.createChooser(i, "Send mail"));
} catch (android.content.ActivityNotFoundException ex) {
//Here you can show alerts
}