デフォルトのアクティビティを選択するように再構成します
-
09-10-2019 - |
質問
意図のデフォルトのアクティビティを選択するためにユーザーを再繰り返す方法はありますか?たとえば、ユーザーはデフォルトのHome APKを選択し、彼に再び自分の選択を再考してもらいたいです。
2.1以前にそれを行う方法を知っていますが、2.2で今それを行う方法はありますか?
同様のことをした有名なホームスイッチャーは、Googleチームのおかげで2.2ではもう動作しません
解決
たとえば、ユーザーはデフォルトのHome APKを選択し、彼に再び自分の選択を再考してもらいたいです。
アプリが優先されない限り、それは不可能です。その後、使用できると思います clearPackagePreferredActivities()
好みの選択として自分自身を削除する。
言い換えれば、あなた自身のアプリに影響を与えることを歓迎しますが、他のアプリに影響を与えることは歓迎されません。
他のヒント
これは、アクティビティ選択ダイアログを表す方法です。「ホーム」アプリケーションのAndroidデフォルトのリゾルバラティ性を開始します。
Intent selector = new Intent("android.intent.action.MAIN");
selector.addCategory("android.intent.category.HOME");
selector.setComponent(new ComponentName("android", "com.android.internal.app.ResolverActivity"));
startActivity(selector);
上記のコードは、2.2対応のタブレットで機能しています。実行されると、リスト内のすべての可能なホームアプリケーションを備えた「完全なアクション:」ダイアログを表示します。
現在デフォルトで設定されているものを検出する方法は、すべての優先アクティビティを要求できます。リスト「フィルター」と「comps」には、.getPreferredactivities(...)を呼び出すときにデータが含まれています。
フィルター - 意図フィルターデータが含まれており、それがどのタイプのデータであるかを照会できます。
comps -intentフィルターが一致した場合に呼び出されるコンポーネントをコンタイアン
これにより、アプリケーションがユーザーが優先されるように設定された現在の「ホーム」アプリケーションであるかどうかを確認できます。
List<IntentFilter> filters = new ArrayList<IntentFilter>();
List<ComponentName> comps= new ArrayList<ComponentName>();
getPackageManager().getPreferredActivities(filters, comps, null);