前言
-
对于分布式能力的接口,HarmonyOS 在 API Version 4 提供了一波,然后到 API Version 7 又提供了另一波,因此 API Version 4 的接口就不再被维护了,后续应该使用最新的 API Version 7 的接口。
-
但是,官方的开发工具里面提供的 Super Device,即支持调试分布式功能的远程双设备,都还处在 API Version 6 阶段,如下:
-
也就是说,目前要用 API Versoin 7 的接口去实现分布式功能,只能在真机上开发调试,从下图来看,至少需要两台 P40 Pro:
-
且,API Version 7 目前还处在 Beta 版本,使用起来可能会遇到各种问题,将来也可能会有变动,如下:
-
因此,在经济条件有限的情况下,我们目前主要还是使用 API Version 4 的接口来开发分布式功能,等官方普遍支持 API Version 7 了,再使用该新版本接口。
权限申请
- 在使用分布式能力之前,需要先申请对应权限的使用,比如:
GET_DISTRIBUTED_DEVICE_INFO
,用来获取分布式的设备信息;DISTRIBUTED_DATASYNC
,用来在分布式设备之间进行数据同步 - 上述两个权限都需要在
config.json
中进行配置申明,如下:
- 权限分为两种类别:敏感权限与非敏感权限,前者的授予模式
(grantMode)
为用户授予(user_grant)
,也就是需要在运行时弹窗向用户申请权限的使用;后者的授予模式为系统授予(system_grant)
,是在安装时向用户列出需要的权限,当用户同意安装时,这些权限就被授权给了应用。 - 上面我们的分布式权限中:
GET_DISTRIBUTED_DEVICE_INFO
是非敏感权限,在config.json
中声明即可;DISTRIBUTED_DATASYNC
是敏感权限,还需要调用接口向用户申请,如下是在 MainAbility 中的 onStart 回调中,即应用一打开就申请使用:
- 效果如图: