跳到主要内容

管理数据源

场景介绍

数据源提供了应用或者设备的信息,每一个运动健康数据必须关联数据源信息,通过DataSourceId进行关联。

DataSourceId在插入数据源信息时由平台生成,无法更改。

接口说明

接口名描述
insertDataSource(dataSource: DataSourceBase): Promise<string>插入数据源,入参为数据源基类DataSourceBase
readDataSource(request: DataSourceReadRequest): Promise<DataSource[]>查询数据源,通过DataSourceReadRequest设置查询条件,可按DataSourceId/包名/设备UniqueId查询数据源。
updateDataSource(dataSource: DataSource): Promise<void>更新数据源,其中数据源的dataSourceId和uniqueId字段无法更新。

开发前检查

开发步骤

插入数据源

1.导入运动健康服务功能模块及相关公共模块。

import { healthStore } from '@kit.HealthServiceKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

2.创建数据源。

let dataSource: healthStore.DataSourceBase = {
deviceInfo: {
uniqueId: 'test',
name: 'test', // 插入数据源时此字段必填
category: healthStore.DeviceCategory.WEARABLE_BAND, // 插入数据源时此字段必填
productId: '0554', // 插入数据源时此字段必填
model: 'lotana',
manufacturer: 'HUAWEI',
mac: 'testDeviceMac',
sn: 'testDeviceSn',
hardwareVersion: '1',
softwareVersion: '2',
firmwareVersion: '3',
udid: ''
}
}

3.调用insertDataSource方法执行插入请求,并处理返回结果。

try {
const dataSourceId = await healthStore.insertDataSource(dataSource);
hilog.info(0x0000, 'testTag', `Succeeded in inserting dataSource, the dataSourceId is ${dataSourceId}.`);
} catch (err) {
hilog.error(0x0000, 'testTag', `Failed to insert dataSource. Code: ${err.code}, message: ${err.message}`);
}

读取数据源

1.导入运动健康服务功能模块及相关公共模块。

import { healthStore } from '@kit.HealthServiceKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

2.创建数据源读取请求。

let readSourceRequest: healthStore.DataSourceReadRequest = {
deviceUniqueId: 'testudidupdate'
}

3.调用readDataSource方法执行查询请求,并处理返回结果。

try {
let dataSources = await healthStore.readDataSource(readSourceRequest);
dataSources.forEach((dataSource) => {
hilog.info(0x0000, 'testTag', `Succeeded in reading dataSource, the dataSourceId is ${dataSource.dataSourceId}.`);
});
} catch (err) {
hilog.error(0x0000, 'testTag', `Failed to read dataSource. Code: ${err.code}, message: ${err.message}`);
}

更新数据源

1.导入运动健康服务功能模块及相关公共模块。

import { healthStore } from '@kit.HealthServiceKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

2.创建数据源。

let newDataSource: healthStore.DataSource = {
deviceInfo: {
uniqueId: 'test',
name: 'test',
category: healthStore.DeviceCategory.WEARABLE_BAND,
productId: '0554',
model: 'lotana',
manufacturer: 'HUAWEI',
mac: 'testDeviceMac',
sn: 'testDeviceSn',
hardwareVersion: '1',
softwareVersion: '2',
firmwareVersion: '3',
// 修改udid
udid: 'updateudid'
},
// 此处dataSourceId值为开发步骤插入数据源时,返回的dataSourceId
dataSourceId: 'xxx'
}

3.调用updateDataSource方法执行更新请求,并处理返回结果。

try {
await healthStore.updateDataSource(newDataSource);
hilog.info(0x0000, 'testTag', 'Succeeded in updating dataSource.');
} catch (err) {
hilog.error(0x0000, 'testTag', `Failed to update dataSource. Code: ${err.code}, message: ${err.message}`);
}