Novaはこれをどのように管理していますか?私は文字通りまったく同じことをしようとしています: 新しいデフォルトのランチャーをクリアして選択するために押すボタンをユーザーに提供します。
デフォルトのアプリ名を取得して表示できます。
private String getPrefered(Intent i) {
PackageManager pm = this.getActivity().getPackageManager();
final ResolveInfo mInfo = pm.resolveActivity(i, 0);
return (String) pm.getApplicationLabel(mInfo.activityInfo.applicationInfo);
}
どこIntent i
ですか
Intent home = new Intent("android.intent.action.MAIN");
home.addCategory("android.intent.category.HOME");
次に、システム ResolveActivity を呼び出します。
private void makePrefered() {
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);
}
ピッカーが表示され、正しく機能しますが、実際には値を設定またはクリアしません。それをデバッグしている間、私はいくつかの余分なものが欠けているように見えますか? メソッドを呼び出すとmakePrefered
、次のログ メッセージが表示されます。
I/ActivityManager( 602): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] cmp=android/com.android.internal.app.ResolverActivity u=0} from pid 22641
Nova実装を使用すると、これらすべてが表示されますが、
I/PackageManager( 602): Result set changed, dropping preferred activity for Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 (has extras) } type null
I/ActivityManager( 602): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=android/com.android.internal.app.ResolverActivity (has extras) u=0} from pid 22905
I/ActivityManager( 602): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=com.mycolorscreen.canvas/.Launcher (has extras) u=0} from pid 22905
- そこにアクセスして、そのバンドルと一緒に何が送られているかを確認するにはどうすればよいですか?
- 優先アプリをクリアするにはどうすればよいですか? できないなんて言わないでください、私はそれらの答えを十分に見てきました。Nova はそれを行い、まさに私がやりたいと思っている方法でそれを行います。