From f67ff6ea2511715118b3c4cb588bf298f0faf023 Mon Sep 17 00:00:00 2001 From: lihuihui Date: Thu, 23 Mar 2023 19:45:48 +0800 Subject: [PATCH] device Signed-off-by: lihuihui --- .../reference/apis/js-apis-data-rdb.md | 103 ++++++++++++++++-- 1 file changed, 91 insertions(+), 12 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md b/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md index 12c7ff4f5e..821d0bcd5e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md @@ -349,6 +349,10 @@ inDevices(devices: Array<string>): RdbPredicates 同步分布式数据库时连接到组网内指定的远程设备。 +> **说明:** +> +> 其中devices通过调用[deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync)方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。 + **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core **参数:** @@ -366,8 +370,24 @@ inDevices(devices: Array<string>): RdbPredicates **示例:** ```js -let predicates = new data_rdb.RdbPredicates("EMPLOYEE") -predicates.inDevices(['12345678abcde']) +import deviceManager from '@ohos.distributedHardware.deviceManager'; +let dmInstance = null; + +deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => { + if (err) { + console.log("create device manager failed, err=" + err); + return; + } + dmInstance = manager; + let devices = dmInstance.getTrustedDeviceListSync(); + let deviceIds = []; + for (var i = 0; i < devices.length; i++) { + deviceIds[i] = devices[i].deviceId; + } +}) + +let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); +predicates.inDevices(deviceIds); ``` ### inAllDevices8+ @@ -1808,7 +1828,7 @@ promise.then(() => { obtainDistributedTableName(device: string, table: string, callback: AsyncCallback<string>): void -根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 使用callback异步回调。 +根据远程设备的本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 使用callback异步回调。 **需要权限:** ohos.permission.DISTRIBUTED_DATASYNC @@ -1818,14 +1838,28 @@ obtainDistributedTableName(device: string, table: string, callback: AsyncCallbac | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | -| device | string | 是 | 远程设备 。| -| table | string | 是 | 本地表名。 | +| device | string | 是 | 远程设备ID 。 | +| table | string | 是 | 远程设备的本地表名 | | callback | AsyncCallback<string> | 是 | 指定的callback回调函数。如果操作成功,返回远程设备的分布式表名。 | **示例:** ```js -rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, tableName) { +import deviceManager from '@ohos.distributedHardware.deviceManager'; +let dmInstance = null; + +deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => { + if (err) { + console.log("create device manager failed, err=" + err); + return; + } + dmInstance = manager; + let devices = dmInstance.getTrustedDeviceListSync(); + let deviceId = devices[0].deviceId; +}) + + +rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE", function (err, tableName) { if (err) { console.info('ObtainDistributedTableName failed, err: ' + err) return @@ -1838,7 +1872,7 @@ rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, obtainDistributedTableName(device: string, table: string): Promise<string> -根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。 +根据远程设备的本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。 **需要权限:** ohos.permission.DISTRIBUTED_DATASYNC @@ -1848,8 +1882,8 @@ rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | -| device | string | 是 | 远程设备。 | -| table | string | 是 | 本地表名。 | +| device | string | 是 | 远程设备ID。 | +| table | string | 是 | 远程设备的本地表名。 | **返回值**: @@ -1860,7 +1894,20 @@ rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, **示例:** ```js -let promise = rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE") +import deviceManager from '@ohos.distributedHardware.deviceManager'; +let dmInstance = null; + +deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => { + if (err) { + console.log("create device manager failed, err=" + err); + return; + } + dmInstance = manager; + let devices = dmInstance.getTrustedDeviceListSync(); + let deviceId = devices[0].deviceId; +}) + +let promise = rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE") promise.then((tableName) => { console.info('ObtainDistributedTableName successfully, tableName= ' + tableName) }).catch((err) => { @@ -1889,8 +1936,24 @@ sync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback<Array **示例:** ```js +import deviceManager from '@ohos.distributedHardware.deviceManager'; +let dmInstance = null; + +deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => { + if (err) { + console.log("create device manager failed, err=" + err); + return; + } + dmInstance = manager; + let devices = dmInstance.getTrustedDeviceListSync(); + let deviceIds = []; + for (var i = 0; i < devices.length; i++) { + deviceIds[i] = devices[i].deviceId; + } +}) + let predicates = new data_rdb.RdbPredicates('EMPLOYEE') -predicates.inDevices(['12345678abcde']) +predicates.inDevices(deviceIds) rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates, function (err, result) { if (err) { console.log('Sync failed, err: ' + err) @@ -1929,8 +1992,24 @@ rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates, function (err, resul **示例:** ```js +import deviceManager from '@ohos.distributedHardware.deviceManager'; +let dmInstance = null; + +deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => { + if (err) { + console.log("create device manager failed, err=" + err); + return; + } + dmInstance = manager; + let devices = dmInstance.getTrustedDeviceListSync(); + let deviceIds = []; + for (var i = 0; i < devices.length; i++) { + deviceIds[i] = devices[i].deviceId; + } +}) + let predicates = new data_rdb.RdbPredicates('EMPLOYEE') -predicates.inDevices(['12345678abcde']) +predicates.inDevices(deviceIds) let promise = rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates) promise.then((result) =>{ console.log('Sync done.') -- GitLab