1.概述
在13.0的系统rom产品定制化中,如果系统安装多个浏览器时,需要设置默认浏览器来完成需求,这就需要看系统设置中的相关源码
当出现多个浏览器时,该如何设置默认浏览器呢,
其实在Settings 默认应用->浏览器应用 当点击选择浏览器时会调用PermissionController的代码
2.设置app为默认浏览器的相关代码
packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/role/ui/ManageRoleHolderStateLiveData.java
frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
3.设置第三方浏览器app为默认浏览器的相关代码功能分析
RoleManager就android Q版本新增加的特性,主要用来管理默认应用设置的,目前支持的Role有8种
从对Role的描述来看,Role是系统中与某些特权相关联的唯一名称,系统支持的Role列表可能会随系统应用的更新而变化,对于非系统App不可见的,
三方App应该使用isRoleAvailable接口来判断某个Role是否可用
3.1ManageRoleHolderStateLiveData关于切换默认浏览器相关代码分析
在系统设置中,应用管理里面有切换默认浏览器的相关功能,可以借助这里来
实现设置默认浏览器的相关功能,接下来分析下ManageRoleHolderStateLiveData.java的相关源码
通过分析ManageRoleHolderStateLiveData.jav