测试设备:Redmi K80 HyperOS2.0.107.0 如图,我已经禁用了读取已安装列表权限(首次安装时就没给) 进入华为应用市场的更新页面也提示我开启已安装应用权限 可是进入应用更新页面,华为应用市场仍然能检测到我需要更新的应用和应用版本 Android 系统中有除了通过 QUERY_ALL_PACKAGES 以外的获取已安装应用列表的方式嘛? 也不是系统应用,华为应用市场我自己安装的,再说小米设备上怎么可能预装华为的应用市场

举报· 1136 次点击
登录 注册 站外分享
10 条回复  
Ackvincent 小成 4 天前
Deepseek 给出的答案:华为应用市场主要依赖系统级 API (如 PackageManager 、ApplicationInfo 等)获取已安装应用的信息,而无需申请「读取应用列表权限」。
Ackvincent 小成 4 天前
使用 PackageManager 的 getPackageInfo 或 getApplicationInfo 方法查询特定应用的信息(如包名、版本号等),无论 Android 版本如何,均不需要申请「读取应用列表权限」。
moefishtang 楼主 小成 4 天前
@Ackvincent #1 在搭载 EMUI 或者 HarmonyOS 的设备可以,小米或者其他厂商的系统中会允许第三方应用商城调用系统级 API ?
moefishtang 楼主 小成 4 天前
@Ackvincent #1 Deepseek 我也问了,其实使用情况访问也可以获取到,但是我也没给这个权限 另外 FSHEX 不允许贴 AI 回复的
moefishtang 楼主 小成 4 天前
@Ackvincent #2 Android11 以上必须声明 QUERY_ALL_PACKAGES 来获取完整应用列表的,否则只能看到自身 典型如酷安 app ,若不授予 QUERY_ALL_PACKAGES ,应用清单中就只有酷安
ysc3839 小成 3 天前
target api 不是 11 ?
ysc3839 小成 3 天前
我自己下载了确认了一下,target api 是 11 ,有申请 QUERY_ALL_PACKAGES 权限,MIUI 里禁止读取应用列表,还是能读取到。
dant 初学 3 天前
可以通过 intent filter 只查询具有桌面图标的应用,不受 QUERY_ALL_PACKAGES 权限限制: https://stackoverflow.com/questions/79527331
yuhaofe 小成 3 天前
估计是只限制了 getInstalledPackages ,没限制 queryIntentActivities https://i.imgur.com/jeJWDXF.png https://i.imgur.com/CAKt4vI.png
12下一页
返回顶部