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|| 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```