Как в мире Нова справляется с этим? Я буквально пытаюсь сделать то же самое: предоставить пользователям кнопку, чтобы нажать, чтобы очистить и выбрать новую пусковую установку по умолчанию.
Я могу получить имя приложения по умолчанию и показать его:
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 делает это и делает это именно так, как хотелось бы.