基础信息
概念:在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表示该应用支持分布式调度),否则将无法获得分布式能力。
撰稿 | 吕丹
编辑 | 于睿
作者简介
吕丹,客户端开发工程师,任职于互联网应用开发部,精通客户端开发以及性能优化,对鸿蒙开发、混合开发等有所研究。


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

扫描此二维码
期待您的加入






