2010-06-30 1 views
0

Моя активность устанавливается пользователем по умолчанию пользователем по умолчанию, но я хочу иметь возможность запускать Default Home из моей деятельности, а также , Я пробовал жесткую кодировку:Как я могу получить имена пакетов для приложений, которые могут быть Home на android

Цель намерения = новое намерение (Intent.ACTION_MAIN); intent.addCategory (Intent.CATEGORY_HOME); PackageManager pm = getPackageManager(); String packageName = "com.android.launcher"; Строка className = "com.android.launcher.Launcher"; final ComponentName cn = new ComponentName (имя_пакета,> имя класса); intent.setComponent (cn);

Это, похоже, работает на моем дроиде, но сила закрывается на HTC Ally. Я думаю, что есть более простой способ получить список приложений, имеющих категорию «Главная» и «По умолчанию».

Для тех, кто использовал приложение «Домашний Swittcher». Я по сути хочу создать этот список установленных действий по умолчанию по умолчанию на телефоне.

ответ

2

Шаг №1: Создайте Intent, который запускает все, что имеет пользователь для приложения HOME по умолчанию. Другими словами, не пытайтесь вставить ComponentName.

Шаг №2: Позвоните queryIntentActivities() по телефону PackageManager, чтобы узнать, кто может ответить на это Intent.

Шаг № 3: Если в списке есть только две записи, узнайте, какая ваша, а другая - платформа. Если в списке есть 3+ записи, удалите их и позвольте пользователю выбрать один из оставшихся вариантов.

Вы можете сортировать комбинацию # 2 и # 3, используя queryIntentActivityOptions(), если хотите, настроив его, чтобы отфильтровать собственное намерение из списка.