для некоторых конкретных требований Мне нужно изменить приложение Android Default Home с моим настраиваемым домашним приложением (настройка внутри моего приложения, которая будет включать по умолчанию home = мое приложение или предыдущий дом)
Я не хочу, чтобы пользователь перемещал настройки андроида, которые очень сложны.
Может ли кто-нибудь помочь мне, например, где он регистрирует launcher.apk для дефолта домашнее приложение или как изменить это
Единственное, что я мог найти, это старый вопрос: Как изменить настольное приложение Android по умолчанию?
но ответов нет.
Я видел HomeSwitcher на рынке, который делает трюк, но нет ответа для разработчика, который, возможно, был бы занят.
ИЗМЕНИТЬ
Я нашел это в Интернете http://www.mail-archive.com/[email protected]/msg74167.html
Но у меня такая же проблема:
это мой код:
private void makePreferred() {
PackageManager pm = getPackageManager();
IntentFilter f = new IntentFilter("android.intent.action.MAIN");
f.addCategory("android.intent.category.HOME");
f.addCategory("android.intent.category.DEFAULT");
ComponentName cn = new ComponentName("com.example.android.home", "com.example.android.home.Home");
pm.addPreferredActivity(f, IntentFilter.MATCH_CATEGORY_EMPTY, null, cn);
У меня есть android.permission.SET_PREFERRED_APPLICATIONS
, установленный в
манифест. После выполнения вышеприведенного кода журналы требуют, чтобы
был добавлен как ожидаемый (те же журналы, что и когда я отмечаю "Сделать по умолчанию",
из списка IntentResolver). Однако, когда я нахожусь, нажав на кнопку "домой",
список все еще отображается, и в журналах говорится:
INFO/PackageManager(52): Result set changed, dropping preferred
activity for Intent { act=android.intent.action.MAIN cat=
[android.intent.category.HOME] flg=0x10200000 } type null
Итак, похоже, что resolver удаляет запись по умолчанию. Я делаю что-то не так, или это мера безопасности? Каковы идеи за этим?