HarmonyOS 鸿蒙Next 读取手机联系人失败,报权限错误

HarmonyOS 鸿蒙Next 读取手机联系人失败,报权限错误 开发中需要做一个读取本地联系人并显示为是否是好友的功能,参照官方文档在AGC中已经配置了通讯录读写权限,工程中也配置了通讯录读权限,但是在运行时依然会报权限不足的错误,要怎么解决这个问题?

4 回复

在AGC上申请了受限权限,此时会生成新的Profile,需要在build-profile.json5里面将签名信息删除,重新手动配置签名,需要保持Profile一致,若在调试阶段,可直接在module.json5配置权限后使用自动签名即可,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-signing-V5#section9786111152213

写入联系人可参考以下demo:

import common from '@ohos.app.ability.common';
import { BusinessError } from '@kit.BasicServicesKit';

@Component
struct Index {
  build() {
    Row() {
      Column() {
        Button('拉起新建联系人界面').fontSize(24).fontWeight(FontWeight.Bold)
          .onClick(() =>{
          let context = getContext(this) as common.UIAbilityContext;
          startContact(context);
        }).margin(10)
      }.width('100%')
    }.height('100%')
  }
}

function startContact(context: common.UIAbilityContext) : void {
  context.startAbility({
    bundleName: 'com.ohos.contacts',
    abilityName: 'com.ohos.contacts.MainAbility',
    parameters: {
      phoneNumber: 19900000000,
      pageFlag: 'page_flag_save_contact'
    }
  }).then(() =>{
    console.info('successfully.');
  }).
  catch((err: BusinessError) =>{
    console.error(`Failed Code: ${err.code},
    message: ${err.message}`);
  });
}

更多关于HarmonyOS 鸿蒙Next 读取手机联系人失败,报权限错误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


使用@kit.ContactsKit 是不需要所谓的权限。

针对“HarmonyOS 鸿蒙Next 读取手机联系人失败,报权限错误”的问题,可能的原因及解决方案如下:

  1. 检查权限声明: 确保你的应用在manifest.json或相应的配置文件中已正确声明读取联系人的权限。HarmonyOS有特定的权限标识,需要按照官方文档进行配置。

  2. 动态权限请求: 如果你的应用目标版本支持动态权限管理(即运行时权限请求),确保在应用尝试访问联系人之前,已向用户请求并获得了该权限。这通常涉及调用系统的权限请求API。

  3. 用户授权状态: 检查用户是否已授予应用读取联系人的权限。用户可以在系统设置的应用权限管理页面中查看和修改这些权限。

  4. 系统策略限制: 某些情况下,系统策略可能限制应用访问联系人。例如,当应用处于后台时,可能无法访问敏感数据。确保应用在前台时尝试访问联系人。

如果以上步骤均无法解决问题,可能是系统或应用层面的bug。此时,建议直接联系官网客服以获取进一步的技术支持。官网地址是:https://www.itying.com/category-93-b0.html

回到顶部