暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

鸿蒙分布式操作初探之“流转”

北银金科逐浪青春 2021-09-27
4222


基础信息


概念在HarmonyOS中“流转”是指:一个应用程序在某一个设备上运行时,因用户需要,切换到另一个设备上继续运行,同时在原设备上停止运行。流转能力打破设备界限,多设备联动,使用户应用程序可分可合、可流转,实现如邮件跨设备编辑、多设备协同健身、多屏游戏等分布式业务。



前提


1. wifi在同一网络

2. 华为账号是否登录,设备是否都是登录的相同的华为账号

3. 手机设置中“分布式协同”是否开启。


基础配置


1、在config.json文件中配置权限



2、在MainAbility的onStart()方法中请求权限



3、DeviceManager获取设备列表集合



跨端迁移



模拟简单场景:


设备A点击按钮迁移数据到设备B,设备B修改数据后,设备A点击按钮回迁数据,并更新ui,代码如下:



注意


1. 只Slice中实现了IAbilityContinuation接口,而在Slice对应的ability中也需要实现该接口

2. 数据流转需要onStartContinuation方法返回值为true

3. 数据回调需要onRestoreData方法返回值为true

4. onRestoreData,在目标端设备上的FA会重新启动其生命周期,无论其启动模式如何配置,且系统回调此方法的时机在onStart()之前。

5. continueAbility(String deviceId)仅支持单向流转

6. continueAbilityReversibly(String deviceId)可拉回迁移


多端协同



开发者根据Ability模板及意图的不同,通过组合生成多端协同的业务


设备A启动设备B的两种写法



使用connectAbility()方法设备A连接设备B的服务


分布式任务调度平台向开发者提供了跨设备Service连接及断开连接的能力,链接是使用connectAbility()方法,需要传入目标Service的Intent与接口IAbilityConnection的实例对象。


接口IAbilityConnection提供了两个方法供开发者实现:


(1)onAbilityConnectDone()用来处理连接的回调。

(2)onAbilityDisconnectDone()用来处理断开连接的回调。



注意:


1. 需要注意,目标FA/PA需要在config.json中设置“visible”为true。visible标签表示Ability是否可以被其他应用调用,默认为false,即只允许同应用(同appid)访问;如需被其他应用访问,需要将其设置为true,同时建议在目标FA/PA中添加自定义权限,控制访问范围,防止被其他应用随意访问。

2. 开发者需要在Intent中设置支持分布式的标记(例如:Intent.FLAG_ABILITYSLICE_MULTI_DEVICE表示该应用支持分布式调度),否则将无法获得分布式能力。



撰稿 | 吕丹

编辑 | 于睿



作者简介


吕丹,客户端开发工程师,任职于互联网应用开发部,精通客户端开发以及性能优化,对鸿蒙开发、混合开发等有所研究。





招聘启事


北银金融科技有限责任公司根植于北京银行,是一家致力于大数据、人工智能、云计算、区块链、物联网等新技术创新与金融科技应用的科技企业,公司充分发挥北京银行企业文化和技术积淀先天优势,通过对技术、场景、生态的完美融合,输出科技创新产品和技术服务。


现诚邀优秀人才加盟

共享金融科技时代硕果




扫描此二维码

期待您的加入



文章转载自北银金科逐浪青春,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论