提交 9fdbe4c6 编写于 作者: A Annie_wang

update docs

Signed-off-by: NAnnie_wang <annie.wangli@huawei.com>
上级 a16dc936
...@@ -10,9 +10,16 @@ You can synchronize the application data in a local RDB store on a device to oth ...@@ -10,9 +10,16 @@ You can synchronize the application data in a local RDB store on a device to oth
OpenHamony supports synchronization of the relational data of an application across multiple devices. OpenHamony supports synchronization of the relational data of an application across multiple devices.
- Distributed table list<br>After a table is created for an application in an RDB store, you can set it as a distributed table. When querying the RDB store of a remote device, you can obtain the distributed table name of the remote device based on the local table name. - Distributed table list
- Synchronization mode<br>Data can be synchronized between devices in either of the following ways: <br>- Pushing data from a local device to a remote device. <br>- Pulling data from a remote device to a local device. After a table is created for an application in an RDB store, you can set it as a distributed table. When querying the RDB store of a remote device, you can obtain the distributed table name of the remote device based on the local table name.
- Synchronization mode
Data can be synchronized between devices in either of the following ways:
- Pushing data from a local device to a remote device.
- Pulling data from a remote device to a local device.
## Working Principles ## Working Principles
...@@ -44,12 +51,10 @@ When data is added, deleted, or modified, a notification is sent to the subscrib ...@@ -44,12 +51,10 @@ When data is added, deleted, or modified, a notification is sent to the subscrib
- Each RDB store supports a maximum of eight callbacks for subscription of data change notifications. - Each RDB store supports a maximum of eight callbacks for subscription of data change notifications.
- Third-party applications cannot call the distributed APIs that must be specified with the device.
## Available APIs ## Available APIs
The following table lists the APIs for cross-device data synchronization of RDB stores. Most of the APIs are executed asynchronously, using a callback or promise to return the result. The following table uses the callback-based APIs as an example. For more information about the APIs, see [RDB Store](../reference/apis/js-apis-data-relationalStore.md). Most of the APIs for cross-device data synchronization of RDB stores are executed asynchronously in callback or promise mode. The following table uses the callback-based APIs as an example. For more information about the APIs, see [RDB Store](../reference/apis/js-apis-data-relationalStore.md).
| API| Description| | API| Description|
| -------- | -------- | | -------- | -------- |
...@@ -73,7 +78,7 @@ The following table lists the APIs for cross-device data synchronization of RDB ...@@ -73,7 +78,7 @@ The following table lists the APIs for cross-device data synchronization of RDB
import relationalStore from '@ohos.data.relationalStore'; import relationalStore from '@ohos.data.relationalStore';
``` ```
2. Request permissions. 2. Apply for the required permission.
1. Request the **ohos.permission.DISTRIBUTED_DATASYNC** permission. For details, see [Declaring Permissions in the Configuration File](../security/accesstoken-guidelines.md#declaring-permissions-in-the-configuration-file). 1. Request the **ohos.permission.DISTRIBUTED_DATASYNC** permission. For details, see [Declaring Permissions in the Configuration File](../security/accesstoken-guidelines.md#declaring-permissions-in-the-configuration-file).
2. Display a dialog box to ask authorization from the user when the application is started for the first time. For details, see [Requesting User Authorization](../security/accesstoken-guidelines.md#requesting-user-authorization). 2. Display a dialog box to ask authorization from the user when the application is started for the first time. For details, see [Requesting User Authorization](../security/accesstoken-guidelines.md#requesting-user-authorization).
...@@ -142,32 +147,33 @@ The following table lists the APIs for cross-device data synchronization of RDB ...@@ -142,32 +147,33 @@ The following table lists the APIs for cross-device data synchronization of RDB
> **NOTE** > **NOTE**
> >
> **deviceIds** is obtained by using [devManager.getTrustedDeviceListSync](../reference/apis/js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are all system interfaces and available only to system applications. > The value of **deviceIds** can be obtained by [deviceManager.getAvailableDeviceListSync](../reference/apis/js-apis-distributedDeviceManager.md#getavailabledevicelistsync).
```js ```js
// Obtain device IDs. // Obtain device IDs.
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null;
deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => { let deviceId = null;
if (err) {
console.info(`Failed to create device manager. Code:${err.code},message:${err.message}`); try {
return; dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
} let devices = dmInstance.getAvailableDeviceListSync();
let devices = manager.getTrustedDeviceListSync(); deviceId = devices[0].networkId;
let deviceId = devices[0].deviceId;
// Construct a predicate object for querying the distributed table.
// Construct a predicate object for querying the distributed table. let predicates = new relationalStore.RdbPredicates('EMPLOYEE');
let predicates = new relationalStore.RdbPredicates('EMPLOYEE'); // Query data from the specified remote device and return the query result.
// Query data from the specified remote device and return the query result. store.remoteQuery(deviceId, 'EMPLOYEE', predicates, ['ID', 'NAME', 'AGE', 'SALARY', 'CODES'],
store.remoteQuery(deviceId, 'EMPLOYEE', predicates, ['ID', 'NAME', 'AGE', 'SALARY', 'CODES'], function (err, resultSet) {
function (err, resultSet) { if (err) {
if (err) { console.error(`Failed to remoteQuery data. Code:${err.code},message:${err.message}`);
console.error(`Failed to remoteQuery data. Code:${err.code},message:${err.message}`); return;
return;
}
console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`);
} }
) console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`);
}) }
``` )
} catch (err) {
console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
}
```
\ No newline at end of file
...@@ -577,7 +577,7 @@ Defines the data types allowed. ...@@ -577,7 +577,7 @@ Defines the data types allowed.
## ValuesBucket ## ValuesBucket
Defines the types of the key and value in a KV pair. This type is not multi-thread safe. If a **ValuesBucket** instance is operated by multiple threads at the same time in an application, use a lock for the instance. Enumerates the types of the key in a KV pair. This type is not multi-thread safe. If a **ValuesBucket** instance is operated by multiple threads at the same time in an application, use a lock for the instance.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
...@@ -587,13 +587,14 @@ Defines the types of the key and value in a KV pair. This type is not multi-thre ...@@ -587,13 +587,14 @@ Defines the types of the key and value in a KV pair. This type is not multi-thre
## PRIKeyType<sup>10+</sup> ## PRIKeyType<sup>10+</sup>
Represents the type of the primary key in a row of a database table. Enumerates the types of the primary key in a row of a database table.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
| Type | Description | | Type | Description |
| ---------------- | ---------------------------------- | | ---------------- | ---------------------------------- |
| number \| string | The type of the primary key can be number or string.| | number | The primary key is a number.|
| string | The primary key is a string.|
## UTCTime<sup>10+</sup> ## UTCTime<sup>10+</sup>
...@@ -798,7 +799,8 @@ Sets an **RdbPredicates** to specify the remote devices to connect on the networ ...@@ -798,7 +799,8 @@ Sets an **RdbPredicates** to specify the remote devices to connect on the networ
> **NOTE** > **NOTE**
> >
> The value of **devices** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications. > The value of **devices** can be obtained by [deviceManager.getAvailableDeviceListSync](js-apis-distributedDeviceManager.md#getavailabledevicelistsync).
If **inDevices** is specified in **predicates** when **sync()** is called, data is synchronized with the specified device. If **inDevices** is not specified, data is synchronized with all devices on the network by default.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
...@@ -817,22 +819,20 @@ Sets an **RdbPredicates** to specify the remote devices to connect on the networ ...@@ -817,22 +819,20 @@ Sets an **RdbPredicates** to specify the remote devices to connect on the networ
**Example** **Example**
```js ```js
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null; let dmInstance = null;
let deviceIds = []; let deviceIds = [];
deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => { try {
if (err) { dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
console.log("create device manager failed, err=" + err); let devices = dmInstance.getAvailableDeviceListSync();
return; for (var i = 0; i < devices.length; i++) {
} deviceIds[i] = devices[i].networkId;
dmInstance = manager; }
let devices = dmInstance.getTrustedDeviceListSync(); } catch (err) {
for (var i = 0; i < devices.length; i++) { console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
deviceIds[i] = devices[i].deviceId; }
}
})
let predicates = new relationalStore.RdbPredicates("EMPLOYEE"); let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
predicates.inDevices(deviceIds); predicates.inDevices(deviceIds);
``` ```
...@@ -844,6 +844,7 @@ inAllDevices(): RdbPredicates ...@@ -844,6 +844,7 @@ inAllDevices(): RdbPredicates
Sets an **RdbPredicates** to specify all remote devices on the network to connect during distributed database synchronization. Sets an **RdbPredicates** to specify all remote devices on the network to connect during distributed database synchronization.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
**Return value** **Return value**
...@@ -2733,7 +2734,7 @@ Queries data from the RDB store of a remote device based on specified conditions ...@@ -2733,7 +2734,7 @@ Queries data from the RDB store of a remote device based on specified conditions
> **NOTE** > **NOTE**
> >
> The value of **device** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications. > The value of **device** can be obtained by [deviceManager.getAvailableDeviceListSync](js-apis-distributedDeviceManager.md#getavailabledevicelistsync).
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
...@@ -2758,19 +2759,17 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode ...@@ -2758,19 +2759,17 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode
**Example** **Example**
```js ```js
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null; let dmInstance = null;
let deviceId = null; let deviceId = null;
deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => { try {
if (err) { dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
console.log("create device manager failed, err=" + err); let devices = dmInstance.getAvailableDeviceListSync();
return; deviceId = devices[0].networkId;
} } catch (err) {
dmInstance = manager; console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
let devices = dmInstance.getTrustedDeviceListSync(); }
deviceId = devices[0].deviceId;
})
let predicates = new relationalStore.RdbPredicates('EMPLOYEE'); let predicates = new relationalStore.RdbPredicates('EMPLOYEE');
predicates.greaterThan("id", 0); predicates.greaterThan("id", 0);
...@@ -2803,7 +2802,7 @@ Queries data from the RDB store of a remote device based on specified conditions ...@@ -2803,7 +2802,7 @@ Queries data from the RDB store of a remote device based on specified conditions
> **NOTE** > **NOTE**
> >
> The value of **device** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications. > The value of **device** can be obtained by [deviceManager.getAvailableDeviceListSync](js-apis-distributedDeviceManager.md#getavailabledevicelistsync).
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
...@@ -2833,19 +2832,17 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode ...@@ -2833,19 +2832,17 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode
**Example** **Example**
```js ```js
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null; let dmInstance = null;
let deviceId = null; let deviceId = null;
deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => { try {
if (err) { dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
console.log("create device manager failed, err=" + err); let devices = dmInstance.getAvailableDeviceListSync();
return; deviceId = devices[0].networkId;
} } catch (err) {
dmInstance = manager; console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
let devices = dmInstance.getTrustedDeviceListSync(); }
deviceId = devices[0].deviceId;
})
let predicates = new relationalStore.RdbPredicates('EMPLOYEE'); let predicates = new relationalStore.RdbPredicates('EMPLOYEE');
predicates.greaterThan("id", 0); predicates.greaterThan("id", 0);
...@@ -3586,6 +3583,8 @@ store.setDistributedTables(["EMPLOYEE"], relationalStore.DistributedType.DISTRIB ...@@ -3586,6 +3583,8 @@ store.setDistributedTables(["EMPLOYEE"], relationalStore.DistributedType.DISTRIB
}) })
``` ```
### setDistributedTables<sup>10+</sup> ### setDistributedTables<sup>10+</sup>
setDistributedTables(tables: Array&lt;string&gt;, type: DistributedType, config: DistributedConfig, callback: AsyncCallback&lt;void&gt;): void setDistributedTables(tables: Array&lt;string&gt;, type: DistributedType, config: DistributedConfig, callback: AsyncCallback&lt;void&gt;): void
...@@ -3682,7 +3681,7 @@ Obtains the distributed table name of a remote device based on the local table n ...@@ -3682,7 +3681,7 @@ Obtains the distributed table name of a remote device based on the local table n
> **NOTE** > **NOTE**
> >
> The value of **device** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications. > The value of **device** can be obtained by [deviceManager.getAvailableDeviceListSync](js-apis-distributedDeviceManager.md#getavailabledevicelistsync).
**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC **Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC
...@@ -3707,19 +3706,17 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode ...@@ -3707,19 +3706,17 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode
**Example** **Example**
```js ```js
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null; let dmInstance = null;
let deviceId = null; let deviceId = null;
deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => { try {
if (err) { dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
console.log("create device manager failed, err=" + err); let devices = dmInstance.getAvailableDeviceListSync();
return; deviceId = devices[0].networkId;
} } catch (err) {
dmInstance = manager; console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
let devices = dmInstance.getTrustedDeviceListSync(); }
deviceId = devices[0].deviceId;
})
store.obtainDistributedTableName(deviceId, "EMPLOYEE", function (err, tableName) { store.obtainDistributedTableName(deviceId, "EMPLOYEE", function (err, tableName) {
if (err) { if (err) {
...@@ -3738,7 +3735,7 @@ Obtains the distributed table name of a remote device based on the local table n ...@@ -3738,7 +3735,7 @@ Obtains the distributed table name of a remote device based on the local table n
> **NOTE** > **NOTE**
> >
> The value of **device** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications. > The value of **device** can be obtained by [deviceManager.getAvailableDeviceListSync](js-apis-distributedDeviceManager.md#getavailabledevicelistsync).
**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC **Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC
...@@ -3768,19 +3765,17 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode ...@@ -3768,19 +3765,17 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode
**Example** **Example**
```js ```js
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null; let dmInstance = null;
let deviceId = null; let deviceId = null;
deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => { try {
if (err) { dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
console.log("create device manager failed, err=" + err); let devices = dmInstance.getAvailableDeviceListSync();
return; deviceId = devices[0].networkId;
} } catch (err) {
dmInstance = manager; console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
let devices = dmInstance.getTrustedDeviceListSync(); }
deviceId = devices[0].deviceId;
})
let promise = store.obtainDistributedTableName(deviceId, "EMPLOYEE"); let promise = store.obtainDistributedTableName(deviceId, "EMPLOYEE");
promise.then((tableName) => { promise.then((tableName) => {
...@@ -3819,21 +3814,19 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode ...@@ -3819,21 +3814,19 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode
**Example** **Example**
```js ```js
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null; let dmInstance = null;
let deviceIds = []; let deviceIds = [];
deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => { try {
if (err) { dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
console.log("create device manager failed, err=" + err); let devices = dmInstance.getAvailableDeviceListSync();
return; for (var i = 0; i < devices.length; i++) {
} deviceIds[i] = devices[i].networkId;
dmInstance = manager; }
let devices = dmInstance.getTrustedDeviceListSync(); } catch (err) {
for (var i = 0; i < devices.length; i++) { console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
deviceIds[i] = devices[i].deviceId; }
}
})
let predicates = new relationalStore.RdbPredicates('EMPLOYEE'); let predicates = new relationalStore.RdbPredicates('EMPLOYEE');
predicates.inDevices(deviceIds); predicates.inDevices(deviceIds);
...@@ -3883,21 +3876,19 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode ...@@ -3883,21 +3876,19 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode
**Example** **Example**
```js ```js
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null; let dmInstance = null;
let deviceIds = []; let deviceIds = [];
deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => { try {
if (err) { dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
console.log("create device manager failed, err=" + err); let devices = dmInstance.getAvailableDeviceListSync();
return; for (var i = 0; i < devices.length; i++) {
} deviceIds[i] = devices[i].networkId;
dmInstance = manager; }
let devices = dmInstance.getTrustedDeviceListSync(); } catch (err) {
for (var i = 0; i < devices.length; i++) { console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
deviceIds[i] = devices[i].deviceId; }
}
})
let predicates = new relationalStore.RdbPredicates('EMPLOYEE'); let predicates = new relationalStore.RdbPredicates('EMPLOYEE');
predicates.inDevices(deviceIds); predicates.inDevices(deviceIds);
...@@ -4129,7 +4120,7 @@ Registers an intra-process or inter-process event listener for the RDB store. Th ...@@ -4129,7 +4120,7 @@ Registers an intra-process or inter-process event listener for the RDB store. Th
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| ------------ | --------------- | ---- | ------------------------------------------------------------ | | ------------ | --------------- | ---- | ------------------------------------------------------------ |
| event | string | Yes | Event name to observe. | | event | string | Yes | Event name to observe. |
| interProcess | boolean | Yes | Type of the event to observe.<br>The value **true** means the inter-process event.<br>The value **false** means the intra-process event. | | interProcess | boolean | Yes | Type of the event to observe.<br>The value **true** means the inter-process event.<br>The value **false** means the intra-process event.|
| observer | Callback\<void> | Yes | Callback invoked to return the result. | | observer | Callback\<void> | Yes | Callback invoked to return the result. |
**Error codes** **Error codes**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册