利用HarmonyOS 分布式软总线与分布式数据能力,掌握分布式键值数据库的创建、读写与跨设备自动同步。主要完成以下功能:

两台设备(或模拟器多实例)登录同一账号并组网;

设备 A 写入数据,观察约 1 秒内设备 B 的 `dataChange` 回调触发并刷新;

断网后重新组网,验证数据自动补齐同步;

模拟两设备同键写入,观察"最后写入生效"合并策略。

真正实现

"一次开发、多端同步"的分布式数据管理思想;

掌握分布式 KV 数据库创建参数(类型、安全级别);

掌握数据写入与 `dataChange` 订阅机制。

核心代码:

import { distributedKVStore } from '@kit.ArkData'
import { BusinessError } from '@kit.BasicServicesKit'

let kvManager: distributedKVStore.KVManager | undefined = undefined
let kvStore: distributedKVStore.SingleKVStore | undefined = undefined

// 1) 创建管理器与分布式数据库
const context = this.getUIContext().getHostContext()
const manager = distributedKVStore.getKVManager(context)
const options: distributedKVStore.Options = {
  createIfMissing: true,
  encrypt: false,
  backup: false,
  kvStoreType: distributedKVStore.KVStoreType.DEVICE_COLLABORATION,
  securityLevel: distributedKVStore.SecurityLevel.S1
}
kvStore = await manager.getKVStore<distributedKVStore.SingleKVStore>(
  'storeId', options)

// 2) 写入数据(自动向组网设备同步)
await kvStore.put('student_01', JSON.stringify({ name: '张三', score: 92 }))

// 3) 订阅远端数据变化
kvStore.on('dataChange', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE,
  (data) => {
    data.insertEntries.forEach(e => console.info(`同步到达: ${e.key}`))
  })

 

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐