加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

OpenHarmony分布式 启动远程设施的FA

发布时间:2022-05-04 11:12:39 所属栏目:系统 来源:互联网
导读:基于OpenHarmony提供的分布式能力,实现在同一个网络下拉起远程设备的Ability,本节主要分享分布式中最基础的能力,分布式拉起的实现。 环境 系统版本:OpenHarmony 3.1 release SDK:OpenHarmony API 8 设备:Hi3516 IDE:DevEco Studio 3.0 Beta3 PC:win1
  基于OpenHarmony提供的分布式能力,实现在同一个网络下拉起远程设备的Ability,本节主要分享分布式中最基础的能力,分布式拉起的实现。

  环境
  系统版本:​​OpenHarmony 3.1 release​​
  SDK:OpenHarmony API 8
  设备:Hi3516
  IDE:​​DevEco Studio 3.0 Beta3​​
  PC:win10 64
  前置条件
  1、在Hi3616开发板上烧写OpenHarmony 3.1 release系统。
 
  2、准备两台烧录相同的版本系统的Hi3516DV300开发板A,B。
 
  3、两个开发板A,B配置在同一个WiFi网络之下。打开设置–>WLAN–>点击右侧WiFi开关–>点击目标WiFi并输入密钥。
 
  分布式实现
  以下内容是本地学习和整理的材料,如果有不对的地方请留言指正,谢谢。
 
  流程说明
  1、用户授权,分布式启动远程FA需要申请敏感权限:ohos.permission.DISTRIBUTED_DATASYNC,用户授权成功后才可以使用。
 
  2、通过deviceManager.createDeviceManager()创建设备管理对象实例DeviceManager。
 
  3、同步获取所有可信设备列表:deviceManager.getTrustedDeviceListSync()。
 
  4、启动发现设备:deviceManager.startDeviceDiscovery()。
 
  5、注册监听器:deviceManager.on()。
 
  deviceStateChange:设备状态发生改变,比如上班上线、下线、状态同步完成。
  deviceFound:发现设备。
  discoverFail:发现设备失败。
  serviceDie:服务停止。
  6、设备认证:deviceManager.authenticateDevice(),两台设备互联需要先建立认证,认证通过两台设备即为可信设备,可以进行一些分布式操作。
 
  7、启动远端FA,featureAbility.startAbility(),其中featureAbility是@ohos.ability.featureAbility。

  参数说明
 
  实现
  复制
  // 同步获取所有可信设备列表
  var list = this.#deviceManager.getTrustedDeviceListSync();
  console.info('[RemoteDeviceModel] deviceList=' + JSON.stringify(list));
 
  1.
  2.
  3.
  开始发现设备
  接口:deviceManager.startDeviceDiscovery(subscribeInfo: SubscribeInfo):void。
 
  接口说明
 
  参数:SubscribeInfo。
 
  实现
  复制
   // 随机数
  SUBSCRIBE_ID = Math.floor(65536 * Math.random());
  var info = {
              subscribeId: SUBSCRIBE_ID,// 服务订阅ID【0~65535】,对每个发现进程来说应该是唯一的
              mode: 0xAA,//主动模式
              medium: 2,//订阅媒介 2-wifi
              freq: 2,// 订阅频率 高
              isSameAccount: false,// 只能找到帐号相同的设备
              isWakeRemote: true,// 发现休眠设备

  注册监听器
  注册设备状态回调。
 
  关键字:deviceStateChange。
 
  接口:deviceManager.on(type: ‘deviceStateChange’, callback: Callback<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void。
 
  参数说明
 
  参数:DeviceStateChangeAction。
 
  说明:表示设备状态变化的枚举。
 
  参数:DeviceInfo。
 
  说明:设备信息。
 
  参数:DeviceType。
 
  说明:表示设备类型的枚举类。

  反注册设备状态回调
  说明:在不需要监听时需要取消注册的监听器,减少资源浪费。
 
  接口:deviceManager.off(type: ‘deviceStateChange’, callback?: Callback<{ action:
 
  DeviceStateChangeAction, device: DeviceInfo }>): void。

  反注册发现设备回调
  说明:在不需要监听时需要取消注册的监听器,减少资源浪费。
 
  接口:deviceManager.off(type: ‘deviceFound’, callback?: Callback<{ subscribeId: number, device:
 
  DeviceInfo }>): void。
 
  实现
  复制
  deviceManager.off('deviceFound');
  1.
  设备认证
  说明:认证指定的设备
 
  接口:deviceManager.authenticateDevice(deviceInfo: DeviceInfo, authParam: AuthParam, callback:
 
  AsyncCallback<{deviceId: string, pinTone ?: number}>): void。
 
  参数说明
 
  参数:AuthParam。

  说明:通过​​@ohos.ability.featureAbility ​​提供的 startAbility() 接口启动远程的FA。
 
  接口:featureAbility.startAbility(parameter: StartAbilityParameter): Promise。

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读