android 获取已安装列表权限,Android 如何完整的获取到用户已安装应用列表

本文详细讨论了Android获取用户已安装应用列表的需求,指出华为、OPPO等厂商将此权限交由用户控制。文章介绍了三种方案,包括通过PackageManager、ADB命令和queryIntentActivities方法,并分析了权限限制对不同方案的影响。最后推荐使用显示Intent查询特定应用的可行性。
摘要由CSDN通过智能技术生成

接到产品经理的预研需求,说希望获取用户已安装应用列表。这个问题应该不难,只要是要把相关的知识点整理和验证一下。

对于获取用户已安装应用列表,我个人是很熟悉的,因为我的华为手机上,手机管家天天会在通知栏弹出”xxx应用尝试获取用户已安装应用列表被禁止”。所以,很明显,跟权限是有关系的。于是,我尝试去查找到底是manifest清单中的哪一个use-permission引起。结果,找了很久,翻了很久,并没有哪个权限对已安装的应用列表负责。

但奇怪的是,我的手机上几乎全部的软件都声明了这个权限。于是,尝试去求助其他组员,咨询了几个,不少人一脸懵逼的表示这是个什么玩意。在他们的手机上压根就没有见过这个东西。

在写demo验证的过程中,发现非常简单的一个demo,居然也声明使用了该权限。 一开始怀疑,难道是检测到了相关代码自动申请了权限?发现全部注释后还是会声明。 后来,将清单文件中的唯一的访问Internet权限去掉,这样才正常。

所以,得出了一个结论就是,国内部分厂商比如华为、oppo,他们将”获取用户已安装应用列表”的权限暴露给了用户,让用户可以自由决定允许或者禁止应用访问该信息。同时,这个权限类似于附加的默认权限,一旦app声明了任何权限,那么”获取用户已安装应用列表”的权限也会被附加进来。但这个权限也不是太敏感,所以对于用户是无感知的。这里的无感知指的是不会在应用中去主动让我们弹窗申请权限,手机管家弹出的通知不算。

好吧,说了这么多,看一下过程中的3种方案。

方案1

private void getAppList() {

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值