harmony 鸿蒙传感器开发指导(ArkTS)

  • 2025-06-12
  • 浏览 (4)

传感器开发指导(ArkTS)

场景介绍

当设备需要获取传感器数据时,可以使用sensor模块,例如:通过订阅方向传感器数据感知用户设备当前的朝向,通过订阅计步传感器数据统计用户的步数等。

详细的接口介绍请参考Sensor接口

接口说明

名称 描述
sensor.on(sensorId, callback:AsyncCallback<Response>): void 持续监听传感器数据变化。
sensor.once(sensorId, callback:AsyncCallback<Response>): void 获取一次传感器数据变化。
sensor.off(sensorId, callback?:AsyncCallback<void>): void 注销传感器数据的监听。
sensor.getSensorList(callback: AsyncCallback<Array<Sensor>>): void 获取设备上的所有传感器信息。

开发步骤

开发步骤以加速度传感器ACCELEROMETER为例。

  1. 导入模块。
   import { sensor } from '@kit.SensorServiceKit';
   import { BusinessError } from '@kit.BasicServicesKit';
  1. 查询设备支持的所有传感器的参数。

    sensor.getSensorList((error: BusinessError, data: Array<sensor.Sensor>) => {
        if (error) {
            console.error('getSensorList failed');
        } else {
            console.info('getSensorList success');
            for (let i = 0; i < data.length; i++) {
                console.info(JSON.stringify(data[i]));
            }
        }
    });
    

    输入图片说明

    该传感器支持的最小采样周期为5000000纳秒,最大采样周期是200000000纳秒。不同传感器支持的采样周期范围也不同,interval应该设置在传感器支持范围内,大于最大值时以最大值上报数据,小于最小值时以最小值上报数据。设置数值越小数据上报越频繁,其功耗越大。

  2. 检查是否已经配置相应权限,具体配置方式请参考声明权限

  3. 注册监听。可以通过on()和once()两种接口监听传感器的调用结果。

通过on()接口,实现对传感器的持续监听,传感器上报周期interval设置为100000000纳秒。

   sensor.on(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => {
        console.info("Succeeded in obtaining data. x: " + data.x + " y: " + data.y + " z: " + data.z);
   }, { interval: 100000000 });
![输入图片说明](figures/002.png)

通过once()接口,实现对传感器的一次监听。

   sensor.once(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => {
       console.info("Succeeded in obtaining data. x: " + data.x + " y: " + data.y + " z: " + data.z);
   });

输入图片说明

  1. 取消持续监听。

    sensor.off(sensor.SensorId.ACCELEROMETER);
    

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Sensor Service Kit(传感器服务)

harmony 鸿蒙传感器开发指导

harmony 鸿蒙传感器开发指导(C/C++)

harmony 鸿蒙传感器开发概述

harmony 鸿蒙传感器开发概述

harmony 鸿蒙Sensor Service Kit开发简介

harmony 鸿蒙振动开发指导

harmony 鸿蒙振动开发指导(C/C++)

harmony 鸿蒙振动开发指导(ArkTS)

harmony 鸿蒙振动开发概述

0  赞