1

ユーザーが特定のアクションにデフォルトのアプリケーションを設定したことを知ることができますか?つまり、android.intent.action.CALL_PRIVILEGED

私のアプリケーションがCall_privilagedの呼び出されたアクションも提供するとします。ただし、ユーザーは、Call_privilagedアクションのデフォルトのランチャーとして組み込みのダイヤラを設定しています。

私の質問は、ユーザーがCall_privalgedアクションのデフォルトランチャーとしてダイヤラを設定したことをプログラムで知ることができるかどうかです。

ありがとうございました。

4

2 に答える 2

1

ユーザーが特定のアクションにデフォルトのアプリケーションを設定したことを知ることができますか?つまり、android.intent.action.CALL_PRIVILEGED

これを行う簡単な方法はないと思います。を呼び出しgetPreferredActivities()PackageManager、ふるいにかけると、うまくいく可能性List<IntentFilter>のあるものを見つけるために戻ってきますIntent

于 2012-05-31T12:46:44.120 に答える
0

resolveActivity()IntentまたはPackageManagerを使用できます。

Intent intent = ...
ComponentName componentName = intent.resolveActivity(getPackageManager());
if (componentName.getPackageName().equals("android")) {
    // No default selected
    ...
} else if (componentName.getPackageName().equals(getPackageName())) {
    // We are default
    ...
} else {
    // Someone else is default
    ...
}

インテントを自分で処理しない場合は、インテントを処理できるアプリがない場合のnullチェックも必要になる可能性があります。

これがすべてのデバイスとすべてのバージョンのAndroidで機能するかどうかはわかりません。NexusデバイスのAndroid4.1-4.3でテスト済み。

于 2013-08-03T20:13:18.093 に答える