求助:HarmonyOS鸿蒙Next中提前向用户弹窗申请开启【已安装应用列表】权限
求助:HarmonyOS鸿蒙Next中提前向用户弹窗申请开启【已安装应用列表】权限 “您的应用在首次打开或运行中,未见使用权限对应的相关功能或服务时,提前向用户弹窗申请开启【已安装应用列表】权限,不符合华为应用市场审核标准。
测试步骤:首次打开APP,在进入首页后,非服务所必须,应用提前申请权限”
我们自检过,刚启动进入首页时的时候没有调用第三方sdk(包括华为推送sdk),我们使用了HarmonyOS3.0.0无法重现这个问题啊,紧急求助
3 回复
开发者您好,请提供您的appid
更多关于求助:HarmonyOS鸿蒙Next中提前向用户弹窗申请开启【已安装应用列表】权限的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,提前向用户弹窗申请开启【已安装应用列表】权限,可以通过调用requestPermissionsFromUser
方法实现。具体步骤如下:
- 权限声明:在
config.json
文件中声明ohos.permission.GET_BUNDLE_INFO
权限。
{
"module": {
"reqPermissions": [
{
"name": "ohos.permission.GET_BUNDLE_INFO",
"reason": "获取已安装应用列表"
}
]
}
}
- 权限申请:在需要申请权限的地方,调用
requestPermissionsFromUser
方法。
import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
let atManager = abilityAccessCtrl.createAtManager();
let permissions: Array<string> = ['ohos.permission.GET_BUNDLE_INFO'];
atManager.requestPermissionsFromUser(this.context, permissions, (err, data) => {
if (err) {
console.error(`Request permissions failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info('Request permissions success');
}
});
- 权限检查:在申请权限前,可以先检查是否已经拥有该权限。
let atManager = abilityAccessCtrl.createAtManager();
let permissionStatus = atManager.verifyAccessToken('ohos.permission.GET_BUNDLE_INFO');
if (permissionStatus === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) {
console.info('Permission already granted');
} else {
console.info('Permission not granted');
}
通过以上步骤,可以在HarmonyOS鸿蒙Next中提前向用户弹窗申请开启【已安装应用列表】权限。