求助: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方法实现。具体步骤如下:

  1. 权限声明:在config.json文件中声明ohos.permission.GET_BUNDLE_INFO权限。
{
  "module": {
    "reqPermissions": [
      {
        "name": "ohos.permission.GET_BUNDLE_INFO",
        "reason": "获取已安装应用列表"
      }
    ]
  }
}
  1. 权限申请:在需要申请权限的地方,调用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');
  }
});
  1. 权限检查:在申请权限前,可以先检查是否已经拥有该权限。
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中提前向用户弹窗申请开启【已安装应用列表】权限。

在HarmonyOS鸿蒙Next中,若需提前向用户弹窗申请开启【已安装应用列表】权限,可以通过以下步骤实现:

  1. 权限声明:在config.json文件中声明ohos.permission.GET_BUNDLE_INFO权限。
  2. 动态申请:在应用启动时,使用requestPermissionsFromUser方法动态申请权限。
  3. 弹窗提示:在申请权限前,通过Dialog组件向用户解释为何需要此权限,提升用户体验。

示例代码:

import abilityAccessCtrl from '@ohos.abilityAccessCtrl';

let atManager = abilityAccessCtrl.createAtManager();
atManager.requestPermissionsFromUser(this.context, ['ohos.permission.GET_BUNDLE_INFO'], (err, data) => {
    if (err) {
        console.error('Request permission failed');
    } else {
        console.log('Request permission success');
    }
});

确保在用户同意后,再进行相关操作。

回到顶部