首页 > 如何在不修改框架的前提下 在自己的app里面修改默认唯一的launcher?

如何在不修改框架的前提下 在自己的app里面修改默认唯一的launcher?

我需要我的app可以在我安排的条件下对接受category_home的intent的情况不要显示resolve -> chooserActivity提示宾客用户来选择 而直接启动我指定或者说替换掉默认的Launcher这样我可以实现禁止来访宾客乱改我的桌面排版。
上面是需求
那么我看到所有应用程序的菜单可以取消掉所有程序接受intent的默认关联,然后想同一类程序是不是都可以取消默认启动设置呢?结果进同一类程序看过之后 发现只有被设置成默认的那个有可以点按的清除默认设置的按钮 那么就是说 这个按钮点击事件的实现肯定是只针对这个默认响应某一类intent的那个唯一的app,之后我看到了packageManagerService里面的clearPackagePreferredActivities公有方法 很简单 传个包名给他就可以完成清除默认启动绑定,一旦清除则肯定会在下一次接收到CATEGORY_HOME的intent的时候弹出系统内部的选择框来选择你已经安装的所有可以响应CATEGORY_HOME事件的app,点击始终启动就会把你选择的那个app设置为绑定默认启动 我的目标就达成了。既然按钮有这个功能 我只需要把这个按钮的实现拿来用就可以了,但是跟进系统app的代码把我转晕了。
现在我到底应该用addPreferredActivity()好呢 还是replacePreferredActivity()呢两个方法要传的参数差不多 我遍历还用的不熟,不知道那些参数应该怎样正确的取得,但是大概能拿到当前默认的app的包名和类名,UserId之类的,但是怎样才能用好这两个方法呢 求小demo解释参数怎么来


貌似不可以

【热门文章】
【热门文章】