Android原生设置TvSettings特殊权限勾选列表过滤指定应用

# 安卓TV客户不希望自己应用的 SYSTEM_ALERT_WINDOW 权限,被用户通过原生设置取消 #

思路:

        SYSTEM_ALERT_WINDOW属于安卓特殊权限,找到原生设置中用来设置“勾选特殊权限的应用列表”的代码,过滤掉客户指定的应用。

代码路径:

        packages\apps\TvSettings\Settings\src\com\android\tv\settings\device\apps\specialaccess\ManageApplicationsController.java

修改的位置:

        在TvSettings中,通过ManageApplicationsController.java类中的updateAppList()方法刷新勾选权限的应用列表。在该方法中过滤掉指定应用的包名后,列表中就不会出现该应用了。

修改前的代码:

private void updateAppList(ArrayList<ApplicationsState.AppEntry> apps) {
    PreferenceGroup group = mCallback.getAppPreferenceGroup();
    final List<Preference> newList = new ArrayList<>(apps.size() + 1);
    for (final ApplicationsState.AppEntry entry : apps) {
        final String packageName = entry.info.packageName;
        mApplicationsState.ensureIcon(entry);
        Preference recycle = group.findPreference(packageName);
        if (recycle == null) {
            recycle = mCallback.createAppPreference();
        }
        newList.add(mCallback.bindPreference(recycle, entry));
    }
    final Preference header = group.findPreference(HEADER_KEY);
    // Because we're sorting the app entries, we should remove-all to ensure that sort order
    // is retained
    group.removeAll();
    if (header != null) {
        group.addPreference(header);
    }
    if (newList.size() > 0) {
        for (Preference prefToAdd : newList) {
            group.addPreference(prefToAdd);
        }
    } else {
        group.addPreference(mCallback.getEmptyPreference());
    }
}

修改后的代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值