Android 11.0 pms获取应用列表时过滤掉某些app功能实现

在Android 11.0的系统定制中,为满足特定需求,需要在第三方应用获取应用列表时过滤掉一些app。通过分析`PackageManager`的源码,尤其是`queryIntentActivities`方法,可以发现在`PackageManagerService`的`queryIntentActivitiesInternal`方法内,可以应用过滤逻辑。例如,当`info.isInstantAppAvailable && blockInstant`条件满足时,可通过移除`resolveInfos`中的相应项来阻止app显示。通过添加代码检查包名并根据`resolveForStart`的值来决定是否过滤,实现了对`com.pne.funcation`的过滤。
摘要由CSDN通过智能技术生成

1.前言

  在11.0的系统rom定制化开发中,对系统定制的功能也是很多的,在产品开发中,要求在第三方app获取应用列表的时候,需要过滤掉某些app,就是不显示在app应用列表中,这就需要在pms查询app列表时过滤掉这些app就可以了,接下来就实现这些功能

2.pms获取应用列表时过滤掉某些app功能实现的核心类

    frameworks\base\core\java\android\content\pm\PackageManager.java
    frameworks\base\services\core\java\com\android\server\pm\PackageManagerService.java

3.pms获取应用列表时过滤掉某些app功能实现的核心功能分析和实现
 

首选看app中是如何通过pms来获取app列表的相关源码,接下来分析下pms的相关源码
         final PackageManager packageManager = getPackageManager();
        final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        List<ResolveInfo> apps &

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安卓兼职framework应用工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值