повторно подскажите выбрать активность по умолчанию

StackOverflow https://stackoverflow.com/questions/3971314

  •  09-10-2019
  •  | 
  •  

Вопрос

Есть ли способ воспроизвести пользователь, чтобы выбрать активность по умолчанию для намерения? Например, пользователь выбирает его Home APK по умолчанию, и я хочу, чтобы он снова пересматривал свой выбор.

Я знаю, как это сделать на 2.1 и раньше, но есть ли способ сделать это сейчас на 2.2?

Знаменитый домашний коммутатор, который сделал подобное, не работает на 2.2 больше, благодаря команде Google

Это было полезно?

Решение

Например, пользователь выбирает его 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 с поддержкой таблеток. При выполнении он отображает диалоговое окно «Полные действия с:» со всеми возможными домашними приложениями в списке.


Способ обнаружения, который в настоящее время устанавливается по умолчанию, вы можете задать все предпочтительные мероприятия. Списки «Фильтры» и «COMP» содержат данные при вызове. GetPreferredeDivity (...).

Фильтры - содержит данные о намерениях фильтрации, которые вы можете запросить то, что он имеет данные.

COMP - Сопроизводитель компонент, который будет называться, если основные спички намерения

Таким образом, вы можете проверить, является ли ваша приложение текущим приложением «Главная», установленное пользователем.

List<IntentFilter> filters = new ArrayList<IntentFilter>();
List<ComponentName> comps= new ArrayList<ComponentName>();
getPackageManager().getPreferredActivities(filters, comps, null);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top