android 13.0 设置第三方浏览器app为默认浏览器

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

相关推荐

  1. android 13.0 设置浏览器app默认浏览器

    2023-12-06 15:06:03       60 阅读
  2. android 13.0 输入法app设置系统默认输入法

    2023-12-06 15:06:03       56 阅读
  3. Android设置应用默认Launcher

    2023-12-06 15:06:03       59 阅读
  4. Android Framework默认授予APP悬浮窗权限

    2023-12-06 15:06:03       57 阅读
  5. Android12】APP开机自启

    2023-12-06 15:06:03       28 阅读
  6. android13 RK356X 预装apk失败

    2023-12-06 15:06:03       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-06 15:06:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-06 15:06:03       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-06 15:06:03       82 阅读
  4. Python语言-面向对象

    2023-12-06 15:06:03       91 阅读

热门阅读

  1. 如何在VSCode中打包Vue项目?

    2023-12-06 15:06:03       57 阅读
  2. js对象转换为数组的两种方法

    2023-12-06 15:06:03       58 阅读
  3. MySQL数据库基础

    2023-12-06 15:06:03       33 阅读
  4. Pgsql常用命令

    2023-12-06 15:06:03       56 阅读
  5. 全民 K 歌音频相关技术分享

    2023-12-06 15:06:03       64 阅读