实时同步startDiscovering与deviceBasicInfoList的方法?

startDiscovering的结果如何实时更新到deviceBasicInfoList中?

代码如下:
//仅发现设备可信,值为0表示设备不可信
//0: 设备离线,客户端需要通过调用bindTarget绑定设备
//1: 设备已在线,客户可以进行连接
this.deviceManagerInstance.startDiscovering({ 'discoverTargetType': 1 }, { 'availableStatus': 0 })
let deviceBasicInfoList=this.deviceManagerInstance.getAvailableDeviceListSync()

请问这里的startDiscovering的结果如何实时更新到deviceBasicInfoList中?有没有什么同步的方法?

阅读 481
1 个回答

通过startDiscovering发现周边不可信设备后,通过绑定接口bindTarget建立可信关系。设备与周边设备建立可信关系后,通过设备信息查询接口getAvailableDeviceListSync可以获取所有上线并且可信的设备。

绑定接口说明

bindTarget(deviceId: string, bindParam: {[key: string]: Object} , callback: AsyncCallback<{deviceId: string}>): void;

开发步骤

  1. 申请分布式数据同步权限。
  2. 发现周边不可信设备。
  3. 选择不可信设备id,发起设备绑定。
class Data {
  deviceId: string = '';
}
let deviceId = 'XXXXXXXX';
let bindParam: Record<string, string | number> = {
  'bindType': 1, 
  'targetPkgName': 'xxxx',
  'appName': 'xxxx',
  'appOperation': 'xxxx',
  'customDescription': 'xxxx'
};
try {
  dmInstance.bindTarget(deviceId, bindParam, (err: BusinessError, data: Data) => {
    if (err) {
      console.error('bindTarget errCode:' + err.code + ',errMessage:' + err.message);
      return;
    }
    console.info('bindTarget result:' + JSON.stringify(data));
  });
} catch (err) {
  let e: BusinessError = err as BusinessError;
  console.error('bindTarget errCode:' + e.code + ',errMessage:' + e.message);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进