对于某些特定要求,我需要使用我的自定义主页应用程序更改Android默认主页应用程序(我的应用程序中的设置将切换默认主页=我的应用程序或以前的主页)
我不希望用户访问非常复杂的android设置.
任何人都可以帮我解决它在哪里注册launcher.apk默认的家庭应用程序或如何更改它
我唯一能找到的就是那个老问题:如何更改默认的Android桌面应用程序?
但根本没有答案.
我已经看到市场上的HomeSwitcher做了这个伎俩,但对于可能肯定很忙的开发人员却没有答案.
编辑
我在网站http://www.mail-archive.com/android-developers@googlegroups.com/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);
Run Code Online (Sandbox Code Playgroud)
我android.permission.SET_PREFERRED_APPLICATIONS在清单中有一套.在执行上面的代码之后,日志声明已经添加了预期的内容(与我从IntentResolver列表中勾选"Make default"时相同的日志).但是,当我单击home继续时,列表仍会显示,日志显示:
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
Run Code Online (Sandbox Code Playgroud)
因此,解析器似乎删除了默认条目.我做错了什么,或者这是一种安全措施?这有什么想法?
我想提示用户选择他想成为他的默认应用程序。(在这种情况下,它在我的自定义启动器或 android 标准启动器之间)
在过去的几个小时里,我一直潜伏在 Google、Stack Overflow 和 Android API Docs 周围,希望找到解决方案。
我想到目前为止我已经设法收集了相当多的信息,但如果我错了,请纠正我:
此外,我在这个主题上找到的大部分信息都已经超过 4 年了。
我已经成功实施了第 4 点所述的解决方法,但恐怕它可能不适用于 4.4.1 之后的 android 版本
所以,这是我的问题:
如何提示用户更改默认应用程序?
(请记住,可能已经有另一个应用设置为“始终”)
这是我正在谈论的一个例子:

提前致谢!