HarmonyOS鸿蒙Next中调用系统API返回“权限被拒绝”的错误,应如何申请和处理权限?
HarmonyOS鸿蒙Next中调用系统API返回“权限被拒绝”的错误,应如何申请和处理权限? 尝试访问用户的联系人信息时,被系统拒绝。
3 回复
ohos.permission.READ_CONTACTS
允许应用读取联系人数据。
可申请此权限的特殊场景与功能:应用需要克隆、备份或同步联系人信息。
其他场景下的使用方案: 使用“联系人Picker”访问联系人数据,使用方式请参考:选择联系人。
推荐您使用`selectContacts`接口。此接口不需要权限
参考链接:[https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/contacts-intro-V5#](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/contacts-intro-V5#)
选择联系人
参考链接:[https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-contact-V5#contactselectcontactdeprecated7](https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-contact-V5#contactselectcontactdeprecated7)
因权限收缩,涉及权限的接口您可能无法使用,推荐您使用 Picker 。相关代替接口在进行完善。在后续的版本中会持续更新。
约束与限制:[https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/contacts-intro-V5#](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/contacts-intro-V5#)约束与限制
读取联系人需要声明接口调用的权限:ohos.permission.READ_CONTACTS,此权限级别为system_basic。
添加联系人、删除联系人、更新联系人需要声明接口调用的权限:ohos.permission.WRITE_CONTACTS,此权限级别为system_basic。
更多关于HarmonyOS鸿蒙Next中调用系统API返回“权限被拒绝”的错误,应如何申请和处理权限?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,调用系统API时若返回“权限被拒绝”,需按以下步骤处理:
-
声明权限:在
module.json5
文件中,明确声明所需权限。"requestPermissions": [ { "name": "ohos.permission.权限名称" } ]
-
动态申请权限:在代码中,使用
requestPermissionsFromUser
方法动态申请权限。import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; let atManager = abilityAccessCtrl.createAtManager(); atManager.requestPermissionsFromUser(this.context, ['ohos.permission.权限名称']) .then((data) => { if (data.authResults[0] === 0) { // 权限申请成功 } else { // 权限申请失败 } }) .catch((err) => { console.error(`Failed to request permissions. Code is ${err.code}, message is ${err.message}`); });
-
处理权限结果:根据权限申请结果,执行相应操作。
-
权限检查:在调用API前,使用
checkAccessToken
方法检查权限状态。let tokenInfo = atManager.verifyAccessTokenSync(this.context.tokenId, 'ohos.permission.权限名称'); if (tokenInfo.granted) { // 权限已授予 } else { // 未授予权限 }
-
权限拒绝处理:若权限被拒绝,提示用户并引导其手动开启权限。