• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 分布式数据管理
2
3### 介绍
4
5本示例展示了在eTS中分布式数据管理的使用,包括KVManager对象实例的创建和KVStore数据流转的使用。
6
7通过设备管理接口[@ohos.distributedDeviceManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-distributedservice-kit/js-apis-distributedDeviceManager.md) ,实现设备之间的kvStore对象的数据传输交互,该对象拥有以下能力[详见](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-distributedservice-kit/js-apis-distributedDeviceManager.md) ;
81、注册和解除注册设备上下线变化监听
92、发现周边不可信设备
103、认证和取消认证设备
114、查询可信设备列表
125、查询本地设备信息,包括设备名称,设备类型和设备标识
136、发布设备发现
14
15### 效果预览
16|首页|
17|-------|
18|![main](screenshots/devices/main.png)|
19
20使用说明
21
221.两台设备组网。
23
242.在一台界面中点击右上角的流转按钮,在弹窗中选择对端设备拉起对端设备上的应用。
25
263.拉起对端设备后,在界面中点击"+"按钮新增笔记卡片,点击每个卡片右上角的"X"按钮可以删除此卡片,可以看到对端设备和当前设备界面数据保持一致。
27
284.操作对端设备,当前设备界面也会保持和对端设备界面显示一致。
29
30### 工程目录
31```
32entry/src/main/ets/
33|---pages
34|   |---index.ets                           // 首页
35|---model
36|   |---DeviceDataModel.ets                 // 设备数据定义
37|   |---KvStoreModel.ets                    // kvstore对象操作类
38|   |---NoteDataModel.ets                   // 笔记数据定义
39|   |---RemoteDeviceModel.ets               // 远程设备操作类
40|---common
41|   |---BasicDataSource.ets                 // 笔记数据源操作
42|   |---Dialog.ets                          // 设备管理对话框
43|   |---NoteItem.ets                        // 笔记组件
44|   |---TitleBar.ets                        // title组件
45```
46
47### 具体实现
48#### 管理kvStore
491、页面初始化时获取此应用所需能力:引入@ohos.data.distributedKVStore初始化kvstore数据库并对使用kvstore.on数据change进行监听,通过appstorge判断获取相应的key判断是否是分布式节点,[源码](entry/src/main/ets/pages/Index.ets) 。
502、如果是分布式节点,如果数据发生变化,处理数据并使用.noteDataSource()进行reload数据。
513、页面通过kvStore对象进行增删改查会触发其他已连接设备的kvStore.on监听。
52#### 管理分布式设备(节点)
531、创建设备管理对象,并指定参数kvstore应用包deviceManager.createDeviceManager("ohos.samples.kvstore", (error, value) => {})
542、获取可信设备列表,"this.deviceManager.getTrustedDeviceListSync())"  。
553、监听设备状态,"this.deviceManager.on('deviceStateChange', (data) => {})",从而对可信设备列表管理。
56
57
58### 相关权限
59
60允许不同设备间的数据交换:[ohos.permission.DISTRIBUTED_DATASYNC](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissiondistributed_datasync)61
62允许系统应用获取分布式设备的认证组网能力:[ohos.permission.ACCESS_SERVICE_DM](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionaccess_service_dm)
63
64### 依赖
65
66不涉及。
67
68### 约束与限制
69
701.本示例仅支持标准系统上运行。
71
723.本示例已适配API version 9版本FULL SDK,版本号:3.2.11.9,使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/faqs/full-sdk-switch-guide.md)73
744.本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400, built on April 7, 2023)及以上版本才可编译运行。
75
763.本示例需要使用[@ohos.distributedDeviceManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-distributedservice-kit/js-apis-distributedDeviceManager.md) 系统权限的系统接口。
77
78### 下载
79
80如需单独下载本工程,执行如下命令:
81```
82git init
83git config core.sparsecheckout true
84echo code/SuperFeature/DistributedAppDev/Kvstore/ > .git/info/sparse-checkout
85git remote add origin https://gitee.com/openharmony/applications_app_samples.git
86git pull origin master
87```