# @ohos.sensor (Sensor) (System API) The **Sensor** module provides APIs for obtaining the sensor list and subscribing to sensor data. It also provides some common sensor algorithms. > **NOTE** > > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. > > The APIs provided by this module are system APIs. ## Modules to Import ```ts import { sensor } from '@kit.SensorServiceKit'; ``` ## sensor.on ### COLOR10+ on(type: SensorId.COLOR, callback: Callback<ColorResponse>, options?: Options): void Subscribes to data of the color sensor. **System capability**: SystemCapability.Sensors.Sensor **System API**: This is a system API. **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------- | ---- | ----------------------------------------------------------- | | type | [SensorId](#sensorid9).COLOR | Yes | Sensor type. The value is fixed at **SensorId.COLOR**. | | callback | Callback<[ColorResponse](#colorresponse10)> | Yes | Callback used to report the sensor data, which is a **ColorResponse** object. | | options | [Options](js-apis-sensor.md#options) | No | List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.| **Error codes** For details about the error codes, see [Sensor Error Codes](errorcode-sensor.md) and [Universal Error Codes](../errorcode-universal.md). | ID| Error Message | | -------- | ------------------------------------------------------------ | | 202 | Permission check failed. A non-system application uses the system API. | | 401 | Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | | 14500101 | Service exception. | **Example** ```ts import { sensor } from '@kit.SensorServiceKit'; import { BusinessError } from '@kit.BasicServicesKit'; try{ sensor.on(sensor.SensorId.COLOR, (data: sensor.ColorResponse) => { console.log('Succeeded in getting the intensity of light: ' + data.lightIntensity); console.log('Succeeded in getting the color temperature: ' + data.colorTemperature); }, { interval: 100000000 }); setTimeout(() => { sensor.off(sensor.SensorId.COLOR); }, 500); } catch (error) { let e: BusinessError = error as BusinessError; console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`); } ``` ### SAR10+ on(type: SensorId.SAR, callback: Callback<SarResponse>, options?: Options): void Subscribes to data of the Sodium Adsorption Ratio (SAR) sensor. **System capability**: SystemCapability.Sensors.Sensor **System API**: This is a system API. **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------------- | ---- | ----------------------------------------------------------- | | type | [SensorId](#sensorid9).SAR | Yes | Sensor type. The value is fixed at **SensorId.SAR**. | | callback | Callback<[SarResponse](#sarresponse10)> | Yes | Callback used to report the sensor data, which is a **SarResponse** object. | | options | [Options](js-apis-sensor.md#options) | No | List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.| **Error codes** For details about the error codes, see [Sensor Error Codes](errorcode-sensor.md) and [Universal Error Codes](../errorcode-universal.md). | ID| Error Message | | -------- | ------------------------------------------------------------ | | 202 | Permission check failed. A non-system application uses the system API. | | 401 | Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | | 14500101 | Service exception. | **Example** ```ts import { sensor } from '@kit.SensorServiceKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { sensor.on(sensor.SensorId.SAR, (data: sensor.SarResponse) => { console.info('Succeeded in getting specific absorption rate : ' + data.absorptionRatio); }, { interval: 100000000 }); setTimeout(() => { sensor.off(sensor.SensorId.SAR); }, 500); } catch (error) { let e: BusinessError = error as BusinessError; console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`); } ``` ## sensor.off ### COLOR10+ off(type: SensorId.COLOR, callback?: Callback<ColorResponse>): void Unsubscribes from data of the color sensor. **System capability**: SystemCapability.Sensors.Sensor **System API**: This is a system API. **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------- | ---- | ------------------------------------------------------------ | | type | [SensorId](#sensorid9).COLOR | Yes | Sensor type. The value is fixed at **SensorId.COLOR**. | | callback | Callback<[ColorResponse](#colorresponse10)> | No | Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md). | ID| Error Message | | -------- | ------------------------------------------------------------ | | 202 | Permission check failed. A non-system application uses the system API. | | 401 | Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | **Example** ```ts import { sensor } from '@kit.SensorServiceKit'; import { BusinessError } from '@kit.BasicServicesKit'; function callback1(data: object) { console.info('Succeeded in getting callback1 data: ' + JSON.stringify(data)); } function callback2(data: object) { console.info('Succeeded in getting callback2 data: ' + JSON.stringify(data)); } try { sensor.on(sensor.SensorId.COLOR, callback1); sensor.on(sensor.SensorId.COLOR, callback2); // Unsubscribe from callback1. sensor.off(sensor.SensorId.COLOR, callback1); // Unsubscribe from all callbacks of the SensorId.COLOR type. sensor.off(sensor.SensorId.COLOR); } catch (error) { let e: BusinessError = error as BusinessError; console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`); } ``` ### SAR10+ off(type: SensorId.SAR, callback?: Callback<SarResponse>): void Unsubscribes from data of the SAR sensor. **System capability**: SystemCapability.Sensors.Sensor **System API**: This is a system API. **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------------------- | ---- | ------------------------------------------------------------ | | type | [SensorId](#sensorid9).SAR | Yes | Sensor type. The value is fixed at **SensorId.SAR**. | | callback | Callback<[SarResponse](#sarresponse10)> | No | Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md). | ID| Error Message | | -------- | ------------------------------------------------------------ | | 202 | Permission check failed. A non-system application uses the system API. | | 401 | Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. | **Example** ```ts import { sensor } from '@kit.SensorServiceKit'; import { BusinessError } from '@kit.BasicServicesKit'; function callback1(data: object) { console.info('Succeeded in getting callback1 data: ' + JSON.stringify(data)); } function callback2(data: object) { console.info('Succeeded in getting callback2 data: ' + JSON.stringify(data)); } try { sensor.on(sensor.SensorId.SAR, callback1); sensor.on(sensor.SensorId.SAR, callback2); // Unsubscribe from callback1. sensor.off(sensor.SensorId.SAR, callback1); // Unsubscribe from all callbacks of the SensorId.SAR type. sensor.off(sensor.SensorId.SAR); } catch (error) { let e: BusinessError = error as BusinessError; console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`); } ``` ## SensorId9+ Enumerates the sensor types. **System capability**: SystemCapability.Sensors.Sensor | Name | Value | Description | | ------------------- | ---- | --------------------------------------------- | | COLOR10+ | 14 | Color sensor.
System API: This is a system API. | | SAR10+ | 15 | Sodium Adsorption Ratio (SAR) sensor.
System API: This is a system API.| ## ColorResponse10+ Describes the color sensor data. It extends from [Response](js-apis-sensor.md#response). **System capability**: SystemCapability.Sensors.Sensor **System API**: This is a system API. | Name | Type | Readable| Writable| Description | | ---------------- | ------ | ---- | ---- | ----------------------------- | | lightIntensity | number | Yes | Yes | Intensity of light, in lux.| | colorTemperature | number | Yes | Yes | Color temperature, in Kelvin. | ## SarResponse10+ Describes the SAR sensor data. It extends from [Response](js-apis-sensor.md#response). **System capability**: SystemCapability.Sensors.Sensor **System API**: This is a system API. | Name | Type | Readable| Writable| Description | | --------------- | ------ | ---- | ---- | ------------------------------- | | absorptionRatio | number | Yes | Yes | Absorption ratio, in W/kg.|