Android13默认主屏幕

原文:Android12 配置默认主屏幕 - 掘金 (juejin.cn)

作者:代码小偷
链接:https://juejin.cn/post/7272632260179787810
来源:稀土掘金

分析流程

APK Settings中的项目app下有对默认APP进行设置,如果没有手动设置默认的主屏幕APP选项一直为空。

DefaultHomeShortcutPreferenceController.java 为默认主屏幕选项控制器,其父类为DefaultAppShortcutPreferenceControllerBase.java,在父类中实现handlePreferenceTreeClick()方法,传入参数roleName = RoleManager.ROLE_HOME;

  public boolean handlePreferenceTreeClick(Preference preference) {
        if (!TextUtils.equals(mPreferenceKey, preference.getKey())) {
            return false;
        }
        final Intent intent = new Intent(Intent.ACTION_MANAGE_DEFAULT_APP)
                .putExtra(Intent.EXTRA_ROLE_NAME, mRoleName);
        mContext.startActivity(intent);
        return true;
    }

其中Intent.ACTION_MANAGE_DEFAULT_APP在Android\packages\modules\Permission\PermissionController中的DefaultAppActivity中接收,根据packagename进行追踪路径如下: DefaultAppActivity.java --->HandheldDefaultAppFragment.java --->DefaultAppChildFragment.java:setDefaultApp()---> ManageRoleHolderStateLiveData.java---> RoleService.java addRoleHolderAsUser()--->RoleControllerServiceImpl.java:onAddRoleHolder()--->RoleManager.java:addRoleHolderFromController()---> RoleService.java:addRoleHolderFromController()--->RoleUserState.java:addRoleHolder():readFile()--->RolesPersistenceImpl.java:ROLES_FILE_NAME = "roles.xml"

该XML位于Android\packages\modules\Permission\PermissionController\res\xml\roles.xml

修改内容

1.在该模块添加defaultHolders="config_defaultHome"

<role
    name="android.app.role.HOME"
    behavior="HomeRoleBehavior"
+++    defaultHolders="config_defaultHome"
    description="@string/role_home_description"
    exclusive="true"
    label="@string/role_home_label"
    overrideUserWhenGranting="true"
    requestDescription="@string/role_home_request_description"
    requestTitle="@string/role_home_request_title"
    searchKeywords="@string/role_home_search_keywords"
    shortLabel="@string/role_home_short_label">
......

2.在Android/frameworks/base/core/res/res/values/config.xml中添加字段:

 <string name="config_defaultHome" translatable="false">包名</string>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值