HarmonyOS鸿蒙Next中用分布式周边设备发现接口时总是报权限未获取的错,代码是对照着api10的代码写的,但是发布不了设备搜索;api10上跑都没问题,但是9上面不知道哪里不对

HarmonyOS鸿蒙Next中用分布式周边设备发现接口时总是报权限未获取的错,代码是对照着api10的代码写的,但是发布不了设备搜索;api10上跑都没问题,但是9上面不知道哪里不对 如题,学生碰到了如下问题,还请帮忙看一下是否是API9不支持该权限

cke_158.png

cke_367.png

代码如下:

cke_967.png


更多关于HarmonyOS鸿蒙Next中用分布式周边设备发现接口时总是报权限未获取的错,代码是对照着api10的代码写的,但是发布不了设备搜索;api10上跑都没问题,但是9上面不知道哪里不对的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

分布式权限要申请,写entryability里面

let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
let context: Context = this.context;
atManager.requestPermissionsFromUser(context, [
  'ohos.permission.DISTRIBUTED_DATASYNC',
]).then((data: PermissionRequestResult) => {
  let grantStatus: Array<number> = data.authResults;
  let length: number = grantStatus.length;
  for (let i = 0; i < length; i++) {
    if (grantStatus[i] === 0) {
      // 用户授权,可以继续访问目标操作
    } else {
      // 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限
      return;
    }
  }
  // 授权成功
}).catch((err: {
  code: number,
  message: number
}) => {
  console.error(`Failed to request permissions from user. Code is ${err.code}, message is ${err.message}`);
})

更多关于HarmonyOS鸿蒙Next中用分布式周边设备发现接口时总是报权限未获取的错,代码是对照着api10的代码写的,但是发布不了设备搜索;api10上跑都没问题,但是9上面不知道哪里不对的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,使用分布式周边设备发现接口时遇到权限未获取的错误,可能是由于API版本差异导致的权限管理机制不同。API 10和API 9在权限管理上可能存在差异,特别是在分布式设备发现相关的权限上。建议检查以下几点:

  1. 权限声明:确保在config.json文件中正确声明了分布式设备发现所需的权限,如ohos.permission.DISTRIBUTED_DATASYNC等。

  2. 动态权限申请:在API 9中,某些权限可能需要动态申请。确保在代码中正确调用了requestPermissionsFromUser方法,并在用户授权后再进行设备搜索。

  3. API差异:API 9和API 10在分布式设备发现接口的实现上可能存在差异。检查API 9的文档,确认接口的使用方式是否与API 10一致。

  4. 日志分析:查看设备日志,确认权限未获取的具体原因。日志中可能会提供更详细的错误信息,帮助定位问题。

  5. 设备兼容性:确保测试设备支持API 9的分布式设备发现功能,并且设备的系统版本符合要求。

通过以上步骤,可以排查并解决在API 9上发布设备搜索时遇到的权限未获取问题。

在HarmonyOS鸿蒙Next中,分布式周边设备发现接口报权限未获取的错误,可能是由于API版本差异导致的权限配置问题。请确保在config.json文件中正确声明了ohos.permission.DISTRIBUTED_DATASYNC权限,并在运行时动态申请该权限。此外,检查设备是否支持分布式能力,并确保网络连接正常。如果问题依旧,建议参考API 9的文档,确认接口调用方式是否有变化。

回到顶部