谁知道怎样,在HarmonyOS鸿蒙Next中解决提前向用户弹窗申请开启【读取已安装应用列表】权限问题?
谁知道怎样,在HarmonyOS鸿蒙Next中解决提前向用户弹窗申请开启【读取已安装应用列表】权限问题?
- 您的应用首次运行时,在展示使用权限对应的相关产品或服务之前,提前向用户弹窗申请开启【读取已安装应用列表】权限,不符合华为应用市场审核标准。
您的应用内广告存在弹出后无法立即关闭的问题,不符合华为应用市场审核标准。
修改建议:请参考测试结果进行修改,提供可直接关闭应用内广告的功能。
请参考《审核指南》第5.4相关审核要求:https://developer.huawei.com/consumer/cn/doc/50104
测试环境:Wi-Fi联网、HarmonyOS 3.1.0 (HUAWEI P60)、中文环境。 如有疑问,可直接回复本条通知进行咨询
近段时间,发现很多人被下架,原因都是 【读取已安装应用列表】
app应用并没有加入
android.permission.QUERY_ALL_PACKAGES
android.permission.GET_INSTALLED_APPS
有谁知道为什么有这样的提示,网上也有很多人提出这样的问题,但没有解决方案?
目前已知
HarmonyOS 3.1.0 会有可能弹出提示(只认为有可能,但没实机验证,希望有这个版本的人 帮忙测试)
HarmonyOS 3.0.0 ,不会提示,(用云手机多台机测试过)
安卓10,11,12,13,14 也不会提示(用云手机多台机测试过)
我的应用 加入了 华为支付,及华为升级,华为审核用在 HarmonyOS 3.1.0 ,就告知违规【读取已安装应用列表】
我的另一个应用 没加入的,华为审核用在 HarmonyOS 3.1.0,并没说违规,最少上线了
有人说 去掉huawei push删掉 ,但我的应用也没有这个
有没有人知道怎样解决??
更多关于谁知道怎样,在HarmonyOS鸿蒙Next中解决提前向用户弹窗申请开启【读取已安装应用列表】权限问题?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
- 我也遇到过,坑了我好长时间。
- 检查下自己的代码 或者 第三方依赖库 。
- 我发现极光认证 和 华为 push 低版本 会有获取情况 , 升级高版本就可以了 。
更多关于谁知道怎样,在HarmonyOS鸿蒙Next中解决提前向用户弹窗申请开启【读取已安装应用列表】权限问题?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
把华为的push删除后,也不行,还是提示,可能要找到HarmonyOS 3.1.0,一个个排除,难道为了这个问题,要专门买台手机,唉!!,
- 检查范围就在弹窗前后集成或者初始化那些第三方sdk慢慢检查。
- 华为P60 mate50Pro机型会提示。
- 不用买手机,华为DevEco Service 按道理是有一定免费时间测试,就看你找不找的到。
问题已排除,是穿山甲问题,搞了几天,原来大神居然不用申请
android.permission.QUERY_ALL_PACKAGES
android.permission.GET_INSTALLED_APPS
也可获取得到安装列表权限,那还要这个声明权限有什么用,排查真累,差点就买了台同型号手机来排查。
那最后是怎么处理的呢?
怎么解决的啊?
广告SDK
关了就可以了,
华为推送的问题 自己的SDK 给别人造坑
问题核心不是能不能申请,而是申请时机要在用户走完隐私政策之后,一般建议在使用相关功能时弹出申请即可。申请方式看指南文档安全部分下面的访问控制,把几个示例拼凑一下勉强通用:)
调用packageManager .getInstalledApplications这种也会弹窗申请权限的,不需要申请那两个权限。
你那个防页面劫持不是也需要获取这些调用getInstalledApplications做判断的,那肯定要到权限。一个审核说页面劫持风险,一个又说获取列表权限。无语管家了,能不能一个人说了算呀。
在HarmonyOS鸿蒙Next中,解决提前向用户弹窗申请开启【读取已安装应用列表】权限的问题,可以通过以下步骤实现:
-
权限声明:首先在
config.json
文件中声明ohos.permission.GET_BUNDLE_INFO
权限。该权限用于读取已安装应用列表。{ "module": { "reqPermissions": [ { "name": "ohos.permission.GET_BUNDLE_INFO", "reason": "读取已安装应用列表" } ] } }
-
动态权限申请:在应用启动时或需要读取应用列表的地方,动态申请权限。使用
abilityContext.requestPermissionsFromUser
方法向用户弹窗申请权限。import abilityAccessCtrl from '[@ohos](/user/ohos).abilityAccessCtrl'; let context = ...; // 获取当前Ability的Context let permissions = ['ohos.permission.GET_BUNDLE_INFO']; let atManager = abilityAccessCtrl.createAtManager(); atManager.requestPermissionsFromUser(context, permissions, (err, data) => { if (err) { console.error(`Failed to request permissions. Error: ${err}`); } else { console.log(`Permissions granted: ${data.permissions}`); } });
-
权限检查:在申请权限前,先检查是否已经拥有该权限。如果已经拥有,则不需要再次申请。
let context = ...; // 获取当前Ability的Context let atManager = abilityAccessCtrl.createAtManager(); atManager.verifyAccessToken('ohos.permission.GET_BUNDLE_INFO').then((result) => { if (result === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) { console.log('Permission already granted'); } else { console.log('Permission not granted, requesting permission'); // 调用动态权限申请代码 } });
通过以上步骤,可以在HarmonyOS鸿蒙Next中实现提前向用户弹窗申请开启【读取已安装应用列表】权限的功能。
在HarmonyOS鸿蒙Next中,若需提前向用户弹窗申请开启【读取已安装应用列表】权限,可通过以下步骤实现:
- 权限声明:在
config.json
文件中声明ohos.permission.GET_BUNDLE_INFO
权限。 - 动态申请:在应用启动时,使用
requestPermissionsFromUser
方法动态申请权限。 - 弹窗提示:在申请权限前,通过自定义弹窗向用户解释权限用途,提升用户体验。
- 权限检查:使用
canRequestPermission
方法检查是否已授权,避免重复申请。
确保遵循最小权限原则,仅在必要时申请权限。