尽管 Android 平台保证某些 Intent 可以分解为内置应用之一(比如,“电话”、“电子邮件”或“日历”应用),您应在调用 Intent 之前始终包含确认步骤。
注意:如果您调用了 Intent,但设备上没有可用于处理 Intent 的应用,您的应用将崩溃。
要确认是否存在可响应 Intent 的可用 Activity,请调用 queryIntentActivities()
来获取能够处理您的 Intent
的 Activity 列表。如果返回的 List
不为空,您可以安全地使用该 Intent。例如:
PackageManager packageManager = getPackageManager()
;
List activities = packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
boolean isIntentSafe = activities.size() > 0;
如果
isIntentSafe
是
true
,则至少有一个应用将响应该 Intent。 如果它是
false
,则没有任何应用处理该 Intent。