Вот как я представляю диалог выбора активности:
Он запускает ResolverActivity для Android по умолчанию для приложений "HOME".
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.
После выполнения отображается диалоговое окно «Выполнить действия с:» со всеми возможными домашними приложениями в списке.
Способ определения, который в настоящее время установлен по умолчанию, можно запросить для всех предпочтительных действий. Списки «filters» и «comps» содержат данные при вызове .getPreferredActivities (...).
filters - содержит данные фильтра намерений, которые вы можете запросить, к какому типу данных это относится.
comps - содержит компонент, который будет вызван, если фильтр намерений соответствует
Таким образом, вы можете проверить, является ли ваше приложение текущим «домашним» приложением, установленным пользователем.
List<IntentFilter> filters = new ArrayList<IntentFilter>();
List<ComponentName> comps= new ArrayList<ComponentName>();
getPackageManager().getPreferredActivities(filters, comps, null);