暗黙的インテントの呼び出しでActivityNotFoundExceptionを防ぐ方法
暗黙インテントを呼び出す時に、対応するActivityが存在しないと
「android.content.ActivityNotFoundException」が発生してしまう…。
なので、呼び出す前に以下のメソッドでActivityが存在するかチェックする
public static boolean checkImplicitIntent(Context context, Intent intent) {
boolean ret = false;
PackageManager pm = context.getPackageManager();
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
List<ResolveInfo> apps = pm.queryIntentActivities(intent, 0);
if (apps.size() > 0) {
ret = true;
}
return ret;
}
呼び出して、「false」が戻ってきたらエラーとして処理する
関連する記事:
- AndroidManifest.xmlに記述した
のデータ取得方法 - Androidでインストール済みのアプリ一覧の取得方法
- AndroidでActivityのスタックを削除する方法
- Androidのサービスでintentを使うとNullPointerExceptionで落ちるのを回避
- AndroidのPendingIntentで気を付けるべき事
コメント 0