1.概述
在12.0的产品定制化中,如果系统安装多个浏览器时,需要设置默认浏览器来完成需求,这就需要看系统设置中的相关源码
当出现多个浏览器时,该如何设置默认浏览器呢,
其实在Settings 默认应用->浏览器应用 当点击选择浏览器时会调用 /package/app/PermissionController的代码
2.设置app为默认浏览器的相关代码
packages\apps\PermissionController\src\com\android\packageinstaller\role\ui\ManageRoleHolderStateLiveData.java
frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
3.设置app为默认浏览器的相关代码功能分析
3.1ManageRoleHolderStateLiveData关于切换默认浏览器相关代码分析
在系统设置中,应用管理里面有切换默认浏览器的相关功能,可以借助这里来
实现设置默认浏览器的相关功能,接下来分析下ManageRoleHolderStateLiveData.java的相关源码
通过分析ManageRoleHolderStateLiveData.java的源码发现,在
点击 Preference 切换浏览器的时候,是最终调用的代码走到 setRoleHolderAsUser()
来设置默认浏览器功能的
packages\apps\PermissionController\src\com\android\packageinstaller\role\ui\ManageRoleHolderStateLiveData.java
public void setRol