質問

意図のデフォルトのアクティビティを選択するためにユーザーを再繰り返す方法はありますか?たとえば、ユーザーはデフォルトの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);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top