Android: alterar aplicativo doméstico padrão
por algum requisito específico, sou obrigado a alterar o aplicativo inicial padrão do Android com o meu aplicativo inicial personalizado (uma configuração dentro do meu aplicativo que alternará a página inicial padrão = minha aplicação ou a página anterior)
Não quero que o usuário viaje com configurações do Android que são muito complicadas.
Alguém pode me ajudar, como onde ele registra launcher.apk para o aplicativo doméstico padrão ou como mudar isso
A única coisa que pude encontrar foi essa pergunta antiga:Como alterar o aplicativo de desktop padrão do Android?
mas nenhuma resposta.
Vi o HomeSwitcher no mercado que faz o truque, mas não há resposta para o desenvolvedor que possa estar ocupado.
EDITAR
Encontrei isso na webhttp://www.mail-archive.com/android-developers@googlegroups.com/msg74167.html
Mas eu tenho o mesmo problema:
este é o meu código:
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);
Eu tenho oandroid.permission.SET_PREFERRED_APPLICATIONS
definido no manifesto. Depois de executar o código acima, os logs afirmam que as coisas foram adicionadas como esperado (mesmos registros de quando marquei a opção "Tornar padrão" na lista do IntentResolver). No entanto, quando continuo clicando em home, a lista ainda aparece e os logs dizem:
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
Parece que o resolvedor exclui a entrada padrão. Estou fazendo algo errado ou isso é uma medida de segurança? Quais são as idéias por trás disso?