1e41f4b71Sopenharmony_ci# Sensor Development 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ci## When to Use 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ciWith the sensor module, a device can obtain sensor data. For example, the device can subscribe to data of the orientation sensor to detect its own orientation. 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ciFor details about the APIs, see [Sensor](../../reference/apis-sensor-service-kit/js-apis-sensor.md). 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci## Available APIs 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci| Name| Description| 14e41f4b71Sopenharmony_ci| -------- | -------- | 15e41f4b71Sopenharmony_ci| sensor.on(sensorId, callback:AsyncCallback<Response>): void | Subscribes to data changes of a type of sensor.| 16e41f4b71Sopenharmony_ci| sensor.off(sensorId, callback?:AsyncCallback<void>): void | Unsubscribes from sensor data changes.| 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci## How to Develop 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ciThe acceleration sensor is used as an example. 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci1. Import modules. 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci ```ts 26e41f4b71Sopenharmony_ci import { sensor } from '@kit.SensorServiceKit'; 27e41f4b71Sopenharmony_ci ``` 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci2. Check whether the corresponding permission has been configured. For details, see [Declaring Permissions](../../security/AccessToken/declare-permissions.md). 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci3. Register a listener. 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci The **on()** API is used to continuously listen for data changes of the sensor. The sensor reporting interval is set to **game**. 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci ```ts 36e41f4b71Sopenharmony_ci sensor.on(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => { 37e41f4b71Sopenharmony_ci console.info("Succeeded in obtaining data. x: " + data.x + " y: " + data.y + " z: " + data.z); 38e41f4b71Sopenharmony_ci }, { interval: 'game' }); 39e41f4b71Sopenharmony_ci ``` 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci  42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci4. Cancel continuous listening. 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci ```ts 46e41f4b71Sopenharmony_ci sensor.off(sensor.SensorId.ACCELEROMETER); 47e41f4b71Sopenharmony_ci ``` 48