Intentに対応するActivityがあるかどうかをどう判断しますか?
1849 ワード
Intentに対応するActivityがあるかどうかをどう判断しますか?少なくとも以下の2つの方法があり、最近使用したことがあるので、メモを取って、調べることができます.
1つ目は、次のとおりです.
2つ目は、複雑ですが、より多くの情報を得ることができ、より役に立つ場合があります.
1つ目は、次のとおりです.
1 public boolean isIntentResolvable(Intent intent) {
2 return intent.resolveActivity(this.getPackageManager()) != null;
3 }
2つ目は、複雑ですが、より多くの情報を得ることができ、より役に立つ場合があります.
public static boolean isIntentAvailable(String action) {
final PackageManager packageManager = getPackageManager();
final Intent intent = new Intent(action);
List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
Log.d("David", "list.size() = " + list.size());
for (ResolveInfo res : list) {
Log.d("David", "res.resolvePackageName = " + res.activityInfo.packageName);
}
return list.size() > 0;
}