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。 (编辑:济南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |