@ohos.sensor (Sensor)

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. Before subscribing to sensor data, call getSingleSensor to obtain the target sensor. For details about how to use the API, see Sensor Development. If any error occurs, see the error code description of the API. When you subscribe to the sensor data, ensure that the on and off APIs are used in pairs.

Modules to Import

import { sensor } from '@kit.SensorServiceKit';

sensor.on('SensorId.ACCELEROMETER')9+

on(type: SensorId.ACCELEROMETER, callback: Callback<AccelerometerResponse>, options?: Options): void

Subscribes to data of the acceleration sensor.

Required permissions: ohos.permission.ACCELEROMETER

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ACCELEROMETER Yes Sensor type. The value is fixed at SensorId.ACCELEROMETER.
callback Callback<AccelerometerResponse> Yes Callback used to report the sensor data, which is an AccelerometerResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => {
    console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.ACCELEROMETER);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.FUSION_PRESSURE')22+

on(type: SensorId.FUSION_PRESSURE, callback: Callback<FusionPressureResponse>, options?: Options): void

Subscribes to the fused pressure sensor data.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.FUSION_PRESSURE Yes Sensor type. The value is fixed at SensorId.FUSION_PRESSURE.
callback Callback<FusionPressureResponse> Yes Callback used to report the sensor data, which is a FusionPressureResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.FUSION_PRESSURE, (data: sensor.FusionPressureResponse) => {
    console.info('Succeeded in invoking on. fusionPressure: ' + data.fusionPressure);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.FUSION_PRESSURE);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.ACCELEROMETER_UNCALIBRATED')9+

on(type: SensorId.ACCELEROMETER_UNCALIBRATED, callback: Callback<AccelerometerUncalibratedResponse>, options?: Options): void

Subscribes to data of the uncalibrated acceleration sensor.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ACCELEROMETER_UNCALIBRATED Yes Sensor type. The value is fixed at SensorId.ACCELEROMETER_UNCALIBRATED.
callback Callback<AccelerometerUncalibratedResponse> Yes Callback used to report the sensor data, which is an AccelerometerUncalibratedResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.ACCELEROMETER_UNCALIBRATED, (data: sensor.AccelerometerUncalibratedResponse) => {
    console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
    console.info('Succeeded in invoking on. X-coordinate bias: ' + data.biasX);
    console.info('Succeeded in invoking on. Y-coordinate bias: ' + data.biasY);
    console.info('Succeeded in invoking on. Z-coordinate bias: ' + data.biasZ);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.ACCELEROMETER_UNCALIBRATED);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.AMBIENT_LIGHT')9+

on(type: SensorId.AMBIENT_LIGHT, callback: Callback<LightResponse>, options?: Options): void

Subscribes to data of the ambient light sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.AMBIENT_LIGHT Yes Sensor type. The value is fixed at SensorId.AMBIENT_LIGHT.
callback Callback<LightResponse> Yes Callback used to report the sensor data, which is a LightResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.AMBIENT_LIGHT, (data: sensor.LightResponse) => {
    console.info('Succeeded in getting the ambient light intensity: ' + data.intensity);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.AMBIENT_LIGHT);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.AMBIENT_TEMPERATURE')9+

on(type: SensorId.AMBIENT_TEMPERATURE, callback: Callback<AmbientTemperatureResponse>, options?: Options): void

Subscribes to data of the ambient temperature sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.AMBIENT_TEMPERATURE Yes Sensor type. The value is fixed at SensorId.AMBIENT_TEMPERATURE.
callback Callback<AmbientTemperatureResponse> Yes Callback used to report the sensor data, which is an AmbientTemperatureResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.AMBIENT_TEMPERATURE, (data: sensor.AmbientTemperatureResponse) => {
    console.info('Succeeded in invoking on. Temperature: ' + data.temperature);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.AMBIENT_TEMPERATURE);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.BAROMETER')9+

on(type: SensorId.BAROMETER, callback: Callback<BarometerResponse>, options?: Options): void

Subscribes to data of the barometer sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.BAROMETER Yes Sensor type. The value is fixed at SensorId.BAROMETER.
callback Callback<BarometerResponse> Yes Callback used to report the sensor data, which is a BarometerResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.BAROMETER, (data: sensor.BarometerResponse) => {
    console.info('Succeeded in invoking on. Atmospheric pressure: ' + data.pressure);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.BAROMETER);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.GRAVITY')9+

on(type: SensorId.GRAVITY, callback: Callback<GravityResponse>, options?: Options): void

Subscribes to data of the gravity sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.GRAVITY Yes Sensor type. The value is fixed at SensorId.GRAVITY.
callback Callback<GravityResponse> Yes Callback used to report the sensor data, which is a GravityResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.GRAVITY, (data: sensor.GravityResponse) => {
    console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.GRAVITY);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.GYROSCOPE')9+

on(type: SensorId.GYROSCOPE, callback: Callback<GyroscopeResponse>, options?: Options): void

Subscribes to data of the gyroscope sensor.

Required permissions: ohos.permission.GYROSCOPE

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.GYROSCOPE Yes Sensor type. The value is fixed at SensorId.GYROSCOPE.
callback Callback<GyroscopeResponse> Yes Callback used to report the sensor data, which is a GyroscopeResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.GYROSCOPE, (data: sensor.GyroscopeResponse) => {
    console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.GYROSCOPE);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.GYROSCOPE_UNCALIBRATED')9+

on(type: SensorId.GYROSCOPE_UNCALIBRATED, callback: Callback<GyroscopeUncalibratedResponse>, options?: Options): void

Subscribes to data of the uncalibrated gyroscope sensor.

Required permissions: ohos.permission.GYROSCOPE

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.GYROSCOPE_UNCALIBRATED Yes Sensor type. The value is fixed at SensorId.GYROSCOPE_UNCALIBRATED.
callback Callback<GyroscopeUncalibratedResponse> Yes Callback used to report the sensor data, which is a GyroscopeUncalibratedResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.GYROSCOPE_UNCALIBRATED, (data: sensor.GyroscopeUncalibratedResponse) => {
    console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
    console.info('Succeeded in invoking on. X-coordinate bias: ' + data.biasX);
    console.info('Succeeded in invoking on. Y-coordinate bias: ' + data.biasY);
    console.info('Succeeded in invoking on. Z-coordinate bias: ' + data.biasZ);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.GYROSCOPE_UNCALIBRATED);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.HALL')9+

on(type: SensorId.HALL, callback: Callback<HallResponse>, options?: Options): void

Subscribes to data of the Hall effect sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.HALL Yes Sensor type. The value is fixed at SensorId.HALL.
callback Callback<HallResponse> Yes Callback used to report the sensor data, which is a HallResponse object.
options Options No List of optional parameters. The default value is 200,000,000 ns. This parameter is used to set the data reporting frequency when Hall effect events are frequently triggered.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.HALL, (data: sensor.HallResponse) => {
    console.info('Succeeded in invoking on. Hall status: ' + data.status);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.HALL);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.HEART_RATE')9+

on(type: SensorId.HEART_RATE, callback: Callback<HeartRateResponse>, options?: Options): void

Subscribes to data of the heart rate sensor.

Required permissions: ohos.permission.READ_HEALTH_DATA

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.HEART_RATE Yes Sensor type. The value is fixed at SensorId.HEART_RATE.
callback Callback<HeartRateResponse> Yes Callback used to report the sensor data, which is a HeartRateResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.HEART_RATE, (data: sensor.HeartRateResponse) => {
    console.info('Succeeded in invoking on. Heart rate: ' + data.heartRate);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.HEART_RATE);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.HUMIDITY')9+

on(type: SensorId.HUMIDITY, callback: Callback<HumidityResponse>, options?: Options): void

Subscribes to data of the humidity sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.HUMIDITY Yes Sensor type. The value is fixed at SensorId.HUMIDITY.
callback Callback<HumidityResponse> Yes Callback used to report the sensor data, which is a HumidityResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.HUMIDITY, (data: sensor.HumidityResponse) => {
    console.info('Succeeded in invoking on. Humidity: ' + data.humidity);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.HUMIDITY);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.LINEAR_ACCELEROMETER')9+

on(type: SensorId.LINEAR_ACCELEROMETER, callback: Callback<LinearAccelerometerResponse>, options?: Options): void

Subscribes to data of the linear acceleration sensor.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.LINEAR_ACCELEROMETER Yes Sensor type. The value is fixed at SensorId.LINEAR_ACCELEROMETER.
callback Callback<LinearAccelerometerResponse> Yes Callback used to report the sensor data, which is a LinearAccelerometerResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.LINEAR_ACCELEROMETER, (data: sensor.LinearAccelerometerResponse) => {
    console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.LINEAR_ACCELEROMETER);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.MAGNETIC_FIELD')9+

on(type: SensorId.MAGNETIC_FIELD, callback: Callback<MagneticFieldResponse>, options?: Options): void

Subscribes to data of the magnetic field sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.MAGNETIC_FIELD Yes Sensor type. The value is fixed at SensorId.MAGNETIC_FIELD.
callback Callback<MagneticFieldResponse> Yes Callback used to report the sensor data, which is a MagneticFieldResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.MAGNETIC_FIELD, (data: sensor.MagneticFieldResponse) => {
    console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.MAGNETIC_FIELD);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.MAGNETIC_FIELD_UNCALIBRATED')9+

on(type: SensorId.MAGNETIC_FIELD_UNCALIBRATED, callback: Callback<MagneticFieldUncalibratedResponse>, options?: Options): void

Subscribes to data of the uncalibrated magnetic field sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.MAGNETIC_FIELD_UNCALIBRATED Yes Sensor type. The value is fixed at SensorId.MAGNETIC_FIELD_UNCALIBRATED.
callback Callback<MagneticFieldUncalibratedResponse> Yes Callback used to report the sensor data, which is a MagneticFieldUncalibratedResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.MAGNETIC_FIELD_UNCALIBRATED, (data: sensor.MagneticFieldUncalibratedResponse) => {
    console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
    console.info('Succeeded in invoking on. X-coordinate bias: ' + data.biasX);
    console.info('Succeeded in invoking on. Y-coordinate bias: ' + data.biasY);
    console.info('Succeeded in invoking on. Z-coordinate bias: ' + data.biasZ);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.MAGNETIC_FIELD_UNCALIBRATED);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.ORIENTATION')9+

on(type: SensorId.ORIENTATION, callback: Callback<OrientationResponse>, options?: Options): void

Subscribes to data of the orientation sensor.

NOTE

Applications or services invoking this API can prompt users to use figure-8 calibration to improve the accuracy of the direction sensor. The sensor has a theoretical error of ±5 degrees, but the specific precision may vary depending on different driver implementations and algorithmic designs.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ORIENTATION Yes Sensor type. The value is fixed at SensorId.ORIENTATION.
callback Callback<OrientationResponse> Yes Callback used to report the sensor data, which is a OrientationResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.ORIENTATION, (data: sensor.OrientationResponse) => {
    console.info('Succeeded in the device rotating at an angle around the Z axis: ' + data.alpha);
    console.info('Succeeded in the device rotating at an angle around the X axis: ' + data.beta);
    console.info('Succeeded in the device rotating at an angle around the Y axis: ' + data.gamma);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.ORIENTATION);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.PEDOMETER')9+

on(type: SensorId.PEDOMETER, callback: Callback<PedometerResponse>, options?: Options): void

Subscribes to data of the pedometer sensor. The step counter sensor's data reporting is subject to some delay, and the delay is determined by specific product implementations.

Required permissions: ohos.permission.ACTIVITY_MOTION

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.PEDOMETER Yes Sensor type. The value is fixed at SensorId.PEDOMETER.
callback Callback<PedometerResponse> Yes Callback used to report the sensor data, which is a PedometerResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.PEDOMETER, (data: sensor.PedometerResponse) => {
    console.info('Succeeded in invoking on. Step count: ' + data.steps);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.PEDOMETER);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.PEDOMETER_DETECTION')9+

on(type: SensorId.PEDOMETER_DETECTION, callback: Callback<PedometerDetectionResponse>, options?: Options): void

Subscribes to data of the pedometer detection sensor.

Required permissions: ohos.permission.ACTIVITY_MOTION

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.PEDOMETER_DETECTION Yes Sensor type. The value is fixed at SensorId.PEDOMETER_DETECTION.
callback Callback<PedometerDetectionResponse> Yes Callback used to report the sensor data, which is a PedometerDetectionResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.PEDOMETER_DETECTION, (data: sensor.PedometerDetectionResponse) => {
    console.info('Succeeded in invoking on. Pedometer scalar: ' + data.scalar);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.PEDOMETER_DETECTION);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.PROXIMITY')9+

on(type: SensorId.PROXIMITY, callback: Callback<ProximityResponse>, options?: Options): void

Subscribes to data of the proximity sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.PROXIMITY Yes Sensor type. The value is fixed at SensorId.PROXIMITY.
callback Callback<ProximityResponse> Yes Callback used to report the sensor data, which is a ProximityResponse object.
options Options No List of optional parameters. The default value is 200,000,000 ns. This parameter is used to set the data reporting frequency when proximity sensor events are frequently triggered.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3.Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.PROXIMITY, (data: sensor.ProximityResponse) => {
    console.info('Succeeded in invoking on. Distance: ' + data.distance);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.PROXIMITY);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.ROTATION_VECTOR')9+

on(type: SensorId.ROTATION_VECTOR, callback: Callback<RotationVectorResponse>, options?: Options): void

Subscribes to data of the rotation vector sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ROTATION_VECTOR Yes Sensor type. The value is fixed at SensorId.ROTATION_VECTOR.
callback Callback<RotationVectorResponse> Yes Callback used to report the sensor data, which is a RotationVectorResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3.Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.ROTATION_VECTOR, (data: sensor.RotationVectorResponse) => {
    console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
    console.info('Succeeded in invoking on. Scalar quantity: ' + data.w);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.ROTATION_VECTOR);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.SIGNIFICANT_MOTION')9+

on(type: SensorId.SIGNIFICANT_MOTION, callback: Callback<SignificantMotionResponse>, options?: Options): void

Subscribes to the significant motion sensor data.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.SIGNIFICANT_MOTION Yes Sensor type. The value is fixed at SensorId.SIGNIFICANT_MOTION.
callback Callback<SignificantMotionResponse> Yes Callback used to report the sensor data, which is a SignificantMotionResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3.Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.SIGNIFICANT_MOTION, (data: sensor.SignificantMotionResponse) => {
    console.info('Succeeded in invoking on. Scalar data: ' + data.scalar);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.SIGNIFICANT_MOTION);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('SensorId.WEAR_DETECTION')9+

on(type: SensorId.WEAR_DETECTION, callback: Callback<WearDetectionResponse>, options?: Options): void

Subscribes to data of the wear detection sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId Yes Sensor type. The value is fixed at SensorId.WEAR_DETECTION.
callback Callback<WearDetectionResponse> Yes Callback used to report the sensor data, which is a WearDetectionResponse object.
options 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 and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3.Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.WEAR_DETECTION, (data: sensor.WearDetectionResponse) => {
    console.info('Succeeded in invoking on. Wear status: ' + data.value);
  }, { interval: 100000000 });
  setTimeout(() => {
    sensor.off(sensor.SensorId.WEAR_DETECTION);
  }, 500);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.on('sensorStatusChange')19+

on(type: 'sensorStatusChange', callback: Callback<SensorStatusEvent>): void

Enables listening for sensor status changes. This API asynchronously returns the result through a callback.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type string Yes Event type. The value sensorStatusChange indicates the sensor status change event.
callback Callback<SensorStatusEvent> Yes Callback used to return the sensor status change event.

Error codes

For details about the following error codes, see Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.on('sensorStatusChange', (data: sensor.SensorStatusEvent) => {
    console.info('sensorStatusChange : ' + JSON.stringify(data));
  });
  setTimeout(() => {
    sensor.off('sensorStatusChange');
  }, 5000);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.ACCELEROMETER')9+

once(type: SensorId.ACCELEROMETER, callback: Callback<AccelerometerResponse>): void

Obtains data of the acceleration sensor once.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ACCELEROMETER Yes Sensor type. The value is fixed at SensorId.ACCELEROMETER.
callback Callback<AccelerometerResponse> Yes Callback used to report the sensor data, which is an AccelerometerResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => {
    console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.ACCELEROMETER_UNCALIBRATED')9+

once(type: SensorId.ACCELEROMETER_UNCALIBRATED, callback: Callback<AccelerometerUncalibratedResponse>): void

Obtains data of the uncalibrated acceleration sensor once.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ACCELEROMETER_UNCALIBRATED Yes Sensor type. The value is fixed at SensorId.ACCELEROMETER_UNCALIBRATED.
callback Callback<AccelerometerUncalibratedResponse> Yes Callback used to report the sensor data, which is an AccelerometerUncalibratedResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.ACCELEROMETER_UNCALIBRATED, (data: sensor.AccelerometerUncalibratedResponse) => {
    console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
    console.info('Succeeded in invoking once. X-coordinate bias: ' + data.biasX);
    console.info('Succeeded in invoking once. Y-coordinate bias: ' + data.biasY);
    console.info('Succeeded in invoking once. Z-coordinate bias: ' + data.biasZ);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.AMBIENT_LIGHT')9+

once(type: SensorId.AMBIENT_LIGHT, callback: Callback<LightResponse>): void

Obtains data of the ambient light sensor once.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.AMBIENT_LIGHT Yes Sensor type. The value is fixed at SensorId.AMBIENT_LIGHT.
callback Callback<LightResponse> Yes Callback used to report the sensor data, which is a LightResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.AMBIENT_LIGHT, (data: sensor.LightResponse) => {
    console.info('Succeeded in invoking once. the ambient light intensity: ' + data.intensity);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.AMBIENT_TEMPERATURE')9+

once(type: SensorId.AMBIENT_TEMPERATURE, callback: Callback<AmbientTemperatureResponse>): void

Obtains data of the temperature sensor once.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.AMBIENT_TEMPERATURE Yes Sensor type. The value is fixed at SensorId.AMBIENT_TEMPERATURE.
callback Callback<AmbientTemperatureResponse> Yes Callback used to report the sensor data, which is an AmbientTemperatureResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.AMBIENT_TEMPERATURE, (data: sensor.AmbientTemperatureResponse) => {
    console.info('Succeeded in invoking once. Temperature: ' + data.temperature);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.BAROMETER')9+

once(type: SensorId.BAROMETER, callback: Callback<BarometerResponse>): void

Obtains data of the barometer sensor once.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.BAROMETER Yes Sensor type. The value is fixed at SensorId.BAROMETER.
callback Callback<BarometerResponse> Yes Callback used to report the sensor data, which is a BarometerResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.BAROMETER, (data: sensor.BarometerResponse) => {
    console.info('Succeeded in invoking once. Atmospheric pressure: ' + data.pressure);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.GRAVITY')9+

once(type: SensorId.GRAVITY, callback: Callback<GravityResponse>): void

Obtains data of the gravity sensor once.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.GRAVITY Yes Sensor type. The value is fixed at SensorId.GRAVITY.
callback Callback<GravityResponse> Yes Callback used to report the sensor data, which is a GravityResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.GRAVITY, (data: sensor.GravityResponse) => {
    console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.GYROSCOPE')9+

once(type: SensorId.GYROSCOPE, callback: Callback<GyroscopeResponse>): void

Obtains data of the gyroscope sensor once.

Required permissions: ohos.permission.GYROSCOPE

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.GYROSCOPE Yes Sensor type. The value is fixed at SensorId.GYROSCOPE.
callback Callback<GyroscopeResponse> Yes Callback used to report the sensor data, which is a GyroscopeResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.GYROSCOPE, (data: sensor.GyroscopeResponse) => {
    console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.GYROSCOPE_UNCALIBRATED')9+

once(type: SensorId.GYROSCOPE_UNCALIBRATED, callback: Callback<GyroscopeUncalibratedResponse>): void

Obtains data of the uncalibrated gyroscope sensor once.

Required permissions: ohos.permission.GYROSCOPE

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.GYROSCOPE_UNCALIBRATED Yes Sensor type. The value is fixed at SensorId.GYROSCOPE_UNCALIBRATED.
callback Callback<GyroscopeUncalibratedResponse> Yes Callback used to report the sensor data, which is a GyroscopeUncalibratedResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.GYROSCOPE_UNCALIBRATED, (data: sensor.GyroscopeUncalibratedResponse) => {
    console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
    console.info('Succeeded in invoking once. X-coordinate bias: ' + data.biasX);
    console.info('Succeeded in invoking once. Y-coordinate bias: ' + data.biasY);
    console.info('Succeeded in invoking once. Z-coordinate bias: ' + data.biasZ);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.HALL')9+

once(type: SensorId.HALL, callback: Callback<HallResponse>): void

Obtains data of the Hall effect sensor once.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.HALL Yes Sensor type. The value is fixed at SensorId.HALL.
callback Callback<HallResponse> Yes Callback used to report the sensor data, which is a HallResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.HALL, (data: sensor.HallResponse) => {
    console.info('Succeeded in invoking once. Status: ' + data.status);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.HEART_RATE')9+

once(type: SensorId.HEART_RATE, callback: Callback<HeartRateResponse>): void

Obtains data of the heart rate sensor once.

Required permissions: ohos.permission.READ_HEALTH_DATA

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.HEART_RATE Yes Sensor type. The value is fixed at SensorId.HEART_RATE.
callback Callback<HeartRateResponse> Yes Callback used to report the sensor data, which is a HeartRateResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.HEART_RATE, (data: sensor.HeartRateResponse) => {
    console.info('Succeeded in invoking once. Heart rate: ' + data.heartRate);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.HUMIDITY')9+

once(type: SensorId.HUMIDITY, callback: Callback<HumidityResponse>): void

Obtains data of the humidity sensor once.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.HUMIDITY Yes Sensor type. The value is fixed at SensorId.HUMIDITY.
callback Callback<HumidityResponse> Yes Callback used to report the sensor data, which is a HumidityResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.HUMIDITY, (data: sensor.HumidityResponse) => {
    console.info('Succeeded in invoking once. Humidity: ' + data.humidity);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.LINEAR_ACCELEROMETER')9+

once(type: SensorId.LINEAR_ACCELEROMETER, callback: Callback<LinearAccelerometerResponse>): void

Obtains data of the linear acceleration sensor once.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.LINEAR_ACCELEROMETER Yes Sensor type. The value is fixed at SensorId.LINEAR_ACCELEROMETER.
callback Callback<LinearAccelerometerResponse> Yes Callback used to report the sensor data, which is a LinearAccelerometerResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.LINEAR_ACCELEROMETER, (data: sensor.LinearAccelerometerResponse) => {
    console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.MAGNETIC_FIELD')9+

once(type: SensorId.MAGNETIC_FIELD, callback: Callback<MagneticFieldResponse>): void

Obtains data of the magnetic field sensor once.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.MAGNETIC_FIELD Yes Sensor type. The value is fixed at SensorId.MAGNETIC_FIELD.
callback Callback<MagneticFieldResponse> Yes Callback used to report the sensor data, which is a MagneticFieldResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.MAGNETIC_FIELD, (data: sensor.MagneticFieldResponse) => {
    console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.MAGNETIC_FIELD_UNCALIBRATED')9+

once(type: SensorId.MAGNETIC_FIELD_UNCALIBRATED, callback: Callback<MagneticFieldUncalibratedResponse>): void

Obtains data of the uncalibrated magnetic field sensor once.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.MAGNETIC_FIELD_UNCALIBRATED Yes Sensor type. The value is fixed at SensorId.MAGNETIC_FIELD_UNCALIBRATED.
callback Callback<MagneticFieldUncalibratedResponse> Yes Callback used to report the sensor data, which is a MagneticFieldUncalibratedResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.MAGNETIC_FIELD_UNCALIBRATED, (data: sensor.MagneticFieldUncalibratedResponse) => {
    console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
    console.info('Succeeded in invoking once. X-coordinate bias: ' + data.biasX);
    console.info('Succeeded in invoking once. Y-coordinate bias: ' + data.biasY);
    console.info('Succeeded in invoking once. Z-coordinate bias: ' + data.biasZ);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.ORIENTATION')9+

once(type: SensorId.ORIENTATION, callback: Callback<OrientationResponse>): void

Obtains data of the orientation sensor once.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ORIENTATION Yes Sensor type. The value is fixed at SensorId.ORIENTATION.
callback Callback<OrientationResponse> Yes Callback used to report the sensor data, which is a OrientationResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.ORIENTATION, (data: sensor.OrientationResponse) => {
    console.info('Succeeded in the device rotating at an angle around the X axis: ' + data.beta);
    console.info('Succeeded in the device rotating at an angle around the Y axis: ' + data.gamma);
    console.info('Succeeded in the device rotating at an angle around the Z axis: ' + data.alpha);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.PEDOMETER')9+

once(type: SensorId.PEDOMETER, callback: Callback<PedometerResponse>): void

Obtains data of the pedometer sensor once. The step counter sensor's data reporting is subject to some delay, and the delay is determined by specific product implementations.

Required permissions: ohos.permission.ACTIVITY_MOTION

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.PEDOMETER Yes Sensor type. The value is fixed at SensorId.PEDOMETER.
callback Callback<PedometerResponse> Yes Callback used to report the sensor data, which is a PedometerResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.PEDOMETER, (data: sensor.PedometerResponse) => {
    console.info('Succeeded in invoking once. Step count: ' + data.steps);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.PEDOMETER_DETECTION')9+

once(type: SensorId.PEDOMETER_DETECTION, callback: Callback<PedometerDetectionResponse>): void

Obtains data of the pedometer sensor once.

Required permissions: ohos.permission.ACTIVITY_MOTION

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.PEDOMETER_DETECTION Yes Sensor type. The value is fixed at SensorId.PEDOMETER_DETECTION.
callback Callback<PedometerDetectionResponse> Yes Callback used to report the sensor data, which is a PedometerDetectionResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.PEDOMETER_DETECTION, (data: sensor.PedometerDetectionResponse) => {
    console.info('Succeeded in invoking once. Scalar data: ' + data.scalar);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.PROXIMITY')9+

once(type: SensorId.PROXIMITY, callback: Callback<ProximityResponse>): void

Obtains data of the proximity sensor once.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.PROXIMITY Yes Sensor type. The value is fixed at SensorId.PROXIMITY.
callback Callback<ProximityResponse> Yes Callback used to report the sensor data, which is a ProximityResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.PROXIMITY, (data: sensor.ProximityResponse) => {
    console.info('Succeeded in invoking once. Distance: ' + data.distance);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.ROTATION_VECTOR')9+

once(type: SensorId.ROTATION_VECTOR, callback: Callback<RotationVectorResponse>): void

Obtains data of the rotation vector sensor once.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ROTATION_VECTOR Yes Sensor type. The value is fixed at SensorId.ROTATION_VECTOR.
callback Callback<RotationVectorResponse> Yes Callback used to report the sensor data, which is a RotationVectorResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.ROTATION_VECTOR, (data: sensor.RotationVectorResponse) => {
    console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
    console.info('Succeeded in invoking once. Scalar quantity: ' + data.w);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.SIGNIFICANT_MOTION')9+

once(type: SensorId.SIGNIFICANT_MOTION, callback: Callback<SignificantMotionResponse>): void

Obtains the significant motion sensor data once.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.SIGNIFICANT_MOTION Yes Sensor type. The value is fixed at SensorId.SIGNIFICANT_MOTION.
callback Callback<SignificantMotionResponse> Yes Callback used to report the sensor data, which is a SignificantMotionResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.SIGNIFICANT_MOTION, (data: sensor.SignificantMotionResponse) => {
    console.info('Succeeded in invoking once. Scalar data: ' + data.scalar);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.once('SensorId.WEAR_DETECTION')9+

once(type: SensorId.WEAR_DETECTION, callback: Callback<WearDetectionResponse>): void

Obtains data of the wear detection sensor once.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId Yes Sensor type. The value is fixed at SensorId.WEAR_DETECTION.
callback Callback<WearDetectionResponse> Yes Callback used to report the sensor data, which is a WearDetectionResponse object.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.once(sensor.SensorId.WEAR_DETECTION, (data: sensor.WearDetectionResponse) => {
    console.info('Succeeded in invoking once. Wear status: ' + data.value);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke once. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.ACCELEROMETER')9+

off(type: SensorId.ACCELEROMETER, callback?: Callback<AccelerometerResponse>): void

Unsubscribes from data of the acceleration sensor.

Required permissions: ohos.permission.ACCELEROMETER

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ACCELEROMETER Yes Sensor type. The value is fixed at SensorId.ACCELEROMETER.
callback Callback<AccelerometerResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.ACCELEROMETER, callback1);
  sensor.on(sensor.SensorId.ACCELEROMETER, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.ACCELEROMETER, callback1);
  // Unsubscribe from all callbacks of the SensorId.ACCELEROMETER type.
  sensor.off(sensor.SensorId.ACCELEROMETER);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.ACCELEROMETER')19+

off(type: SensorId.ACCELEROMETER, sensorInfoParam?: SensorInfoParam, callback?: Callback<AccelerometerResponse>): void

Unsubscribes from data of the acceleration sensor.

Required permissions: ohos.permission.ACCELEROMETER

Atomic service API: This API can be used in atomic services since API version 19.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ACCELEROMETER Yes Sensor type. The value is fixed at SensorId.ACCELEROMETER.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<AccelerometerResponse> 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 Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.AccelerometerResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.ACCELEROMETER;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.ACCELEROMETER_UNCALIBRATED')9+

off(type: SensorId.ACCELEROMETER_UNCALIBRATED, callback?: Callback<AccelerometerUncalibratedResponse>): void

Unsubscribes from data of the uncalibrated acceleration sensor.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ACCELEROMETER_UNCALIBRATED Yes Sensor type. The value is fixed at SensorId.ACCELEROMETER_UNCALIBRATED.
callback Callback<AccelerometerUncalibratedResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.ACCELEROMETER_UNCALIBRATED, callback1);
  sensor.on(sensor.SensorId.ACCELEROMETER_UNCALIBRATED, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.ACCELEROMETER_UNCALIBRATED, callback1);
  // Unsubscribe from all callbacks of the SensorId.ACCELEROMETER_UNCALIBRATED type.
  sensor.off(sensor.SensorId.ACCELEROMETER_UNCALIBRATED);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.FUSION_PRESSURE')22+

off(type: SensorId.FUSION_PRESSURE, sensorInfoParam?: SensorInfoParam, callback?: Callback<FusionPressureResponse>): void

Unsubscribes from the fused pressure sensor data.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.FUSION_PRESSURE Yes Sensor type. The value is fixed at SensorId.FUSION_PRESSURE.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<FusionPressureResponse> 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 Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.FusionPressureResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.FUSION_PRESSURE;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.ACCELEROMETER_UNCALIBRATED')19+

off(type: SensorId.ACCELEROMETER_UNCALIBRATED, sensorInfoParam?: SensorInfoParam, callback?: Callback<AccelerometerUncalibratedResponse>): void

Unsubscribes from data of the uncalibrated acceleration sensor.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ACCELEROMETER_UNCALIBRATED Yes Sensor type. The value is fixed at SensorId.ACCELEROMETER_UNCALIBRATED.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<AccelerometerUncalibratedResponse> 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 Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.AccelerometerUncalibratedResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.ACCELEROMETER_UNCALIBRATED;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.AMBIENT_LIGHT')9+

off(type: SensorId.AMBIENT_LIGHT, callback?: Callback<LightResponse>): void

Unsubscribes from data of the ambient light sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.AMBIENT_LIGHT Yes Sensor type. The value is fixed at SensorId.AMBIENT_LIGHT.
callback Callback<LightResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.AMBIENT_LIGHT, callback1);
  sensor.on(sensor.SensorId.AMBIENT_LIGHT, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.AMBIENT_LIGHT, callback1);
  // Unsubscribe from all callbacks of the SensorId.AMBIENT_LIGHT type.
  sensor.off(sensor.SensorId.AMBIENT_LIGHT);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.AMBIENT_LIGHT')19+

off(type: SensorId.AMBIENT_LIGHT, sensorInfoParam?: SensorInfoParam, callback?: Callback<LightResponse>): void

Unsubscribes from data of the ambient light sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.AMBIENT_LIGHT Yes Sensor type. The value is fixed at SensorId.AMBIENT_LIGHT.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<LightResponse> 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 following error codes, see Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.LightResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.AMBIENT_LIGHT;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.AMBIENT_TEMPERATURE')9+

off(type: SensorId.AMBIENT_TEMPERATURE, callback?: Callback<AmbientTemperatureResponse>): void

Unsubscribes from data of the ambient temperature sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.AMBIENT_TEMPERATURE Yes Sensor type. The value is fixed at SensorId.AMBIENT_TEMPERATURE.
callback Callback<AmbientTemperatureResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.AMBIENT_TEMPERATURE, callback1);
  sensor.on(sensor.SensorId.AMBIENT_TEMPERATURE, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.AMBIENT_TEMPERATURE, callback1);
  // Unsubscribe from all callbacks of the SensorId.AMBIENT_TEMPERATURE type.
  sensor.off(sensor.SensorId.AMBIENT_TEMPERATURE);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.AMBIENT_TEMPERATURE')19+

off(type: SensorId.AMBIENT_TEMPERATURE, sensorInfoParam?: SensorInfoParam, callback?: Callback<AmbientTemperatureResponse>): void

Unsubscribes from data of the ambient temperature sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.AMBIENT_TEMPERATURE Yes Sensor type. The value is fixed at SensorId.AMBIENT_TEMPERATURE.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<AmbientTemperatureResponse> 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 following error codes, see Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.AmbientTemperatureResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.AMBIENT_TEMPERATURE;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.BAROMETER')9+

off(type: SensorId.BAROMETER, callback?: Callback<BarometerResponse>): void

Unsubscribes from data of the barometer sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.BAROMETER Yes Sensor type. The value is fixed at SensorId.BAROMETER.
callback Callback<BarometerResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
    sensor.on(sensor.SensorId.BAROMETER, callback1);
    sensor.on(sensor.SensorId.BAROMETER, callback2);
    // Unsubscribe from callback1.
    sensor.off(sensor.SensorId.BAROMETER, callback1);
    // Unsubscribe from all callbacks of the SensorId.BAROMETER type.
    sensor.off(sensor.SensorId.BAROMETER);
} catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.BAROMETER')19+

off(type: SensorId.BAROMETER, sensorInfoParam?: SensorInfoParam, callback?: Callback<BarometerResponse>): void

Unsubscribes from data of the barometer sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.BAROMETER Yes Sensor type. The value is fixed at SensorId.BAROMETER.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<BarometerResponse> 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 following error codes, see Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.BarometerResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.BAROMETER;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.GRAVITY')9+

off(type: SensorId.GRAVITY, callback?: Callback<GravityResponse>): void

Unsubscribes from data of the gravity sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.GRAVITY Yes Sensor type. The value is fixed at SensorId.GRAVITY.
callback Callback<GravityResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.GRAVITY, callback1);
  sensor.on(sensor.SensorId.GRAVITY, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.GRAVITY, callback1);
  // Unsubscribe from all callbacks of the SensorId.GRAVITY type.
  sensor.off(sensor.SensorId.GRAVITY);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.GRAVITY')19+

off(type: SensorId.GRAVITY, sensorInfoParam?: SensorInfoParam, callback?: Callback<GravityResponse>): void

Unsubscribes from data of the gravity sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.GRAVITY Yes Sensor type. The value is fixed at SensorId.GRAVITY.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<GravityResponse> 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 following error codes, see Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.GravityResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.GRAVITY;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.GYROSCOPE')9+

off(type: SensorId.GYROSCOPE, callback?: Callback<GyroscopeResponse>): void

Unsubscribes from data of the gyroscope sensor.

Required permissions: ohos.permission.GYROSCOPE

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.GYROSCOPE Yes Sensor type. The value is fixed at SensorId.GYROSCOPE.
callback Callback<GyroscopeResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.GYROSCOPE, callback1);
  sensor.on(sensor.SensorId.GYROSCOPE, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.GYROSCOPE, callback1);
  // Unsubscribe from all callbacks of the SensorId.GYROSCOPE type.
  sensor.off(sensor.SensorId.GYROSCOPE);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.GYROSCOPE')19+

off(type: SensorId.GYROSCOPE, sensorInfoParam?: SensorInfoParam, callback?: Callback<GyroscopeResponse>): void

Unsubscribes from data of the gyroscope sensor.

Required permissions: ohos.permission.GYROSCOPE

Atomic service API: This API can be used in atomic services since API version 19.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.GYROSCOPE Yes Sensor type. The value is fixed at SensorId.GYROSCOPE.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<GyroscopeResponse> 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 and Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.GyroscopeResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.GYROSCOPE;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.GYROSCOPE_UNCALIBRATED')9+

off(type: SensorId.GYROSCOPE_UNCALIBRATED, callback?: Callback<GyroscopeUncalibratedResponse>): void

Unsubscribes from data of the uncalibrated gyroscope sensor.

Required permissions: ohos.permission.GYROSCOPE

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.GYROSCOPE_UNCALIBRATED Yes Sensor type. The value is fixed at SensorId.GYROSCOPE_UNCALIBRATED.
callback Callback<GyroscopeUncalibratedResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.GYROSCOPE_UNCALIBRATED, callback1);
  sensor.on(sensor.SensorId.GYROSCOPE_UNCALIBRATED, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.GYROSCOPE_UNCALIBRATED, callback1);
  // Unsubscribe from all callbacks of the SensorId.GYROSCOPE_UNCALIBRATED type.
  sensor.off(sensor.SensorId.GYROSCOPE_UNCALIBRATED);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.GYROSCOPE_UNCALIBRATED')19+

off(type: SensorId.GYROSCOPE_UNCALIBRATED, sensorInfoParam?: SensorInfoParam, callback?: Callback<GyroscopeUncalibratedResponse>): void

Unsubscribes from data of the uncalibrated gyroscope sensor.

Required permissions: ohos.permission.GYROSCOPE

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.GYROSCOPE_UNCALIBRATED Yes Sensor type. The value is fixed at SensorId.GYROSCOPE_UNCALIBRATED.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<GyroscopeUncalibratedResponse> 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 and Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.GyroscopeUncalibratedResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.GYROSCOPE_UNCALIBRATED;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.HALL')9+

off(type: SensorId.HALL, callback?: Callback<HallResponse>): void

Unsubscribes from data of the Hall effect sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.HALL Yes Sensor type. The value is fixed at SensorId.HALL.
callback Callback<HallResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.HALL, callback1);
  sensor.on(sensor.SensorId.HALL, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.HALL, callback1);
  // Unsubscribe from all callbacks of the SensorId.HALL type.
  sensor.off(sensor.SensorId.HALL);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.HALL')19+

off(type: SensorId.HALL, sensorInfoParam?: SensorInfoParam, callback?: Callback<HallResponse>): void

Unsubscribes from data of the Hall effect sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.HALL Yes Sensor type. The value is fixed at SensorId.HALL.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<HallResponse> 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 following error codes, see Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.HallResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.HALL;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.HEART_RATE')9+

off(type: SensorId.HEART_RATE, callback?: Callback<HeartRateResponse>): void

Unsubscribes from data of the heart rate sensor.

Required permissions: ohos.permission.READ_HEALTH_DATA

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.HEART_RATE Yes Sensor type. The value is fixed at SensorId.HEART_RATE.
callback Callback<HeartRateResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.HEART_RATE, callback1);
  sensor.on(sensor.SensorId.HEART_RATE, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.HEART_RATE, callback1);
  // Unsubscribe from all callbacks of the SensorId.HEART_RATE type.
  sensor.off(sensor.SensorId.HEART_RATE);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.HEART_RATE')19+

off(type: SensorId.HEART_RATE, sensorInfoParam?: SensorInfoParam, callback?: Callback<HeartRateResponse>): void

Unsubscribes from data of the heart rate sensor.

Required permissions: ohos.permission.READ_HEALTH_DATA

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.HEART_RATE Yes Sensor type. The value is fixed at SensorId.HEART_RATE.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<HeartRateResponse> 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 Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.HeartRateResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.HEART_RATE;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.HUMIDITY')9+

off(type: SensorId.HUMIDITY, callback?: Callback<HumidityResponse>): void

Unsubscribes from data of the humidity sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.HUMIDITY Yes Sensor type. The value is fixed at SensorId.HUMIDITY.
callback Callback<HumidityResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.HUMIDITY, callback1);
  sensor.on(sensor.SensorId.HUMIDITY, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.HUMIDITY, callback1);
  // Unsubscribe from all callbacks of the SensorId.HUMIDITY type.
  sensor.off(sensor.SensorId.HUMIDITY);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.HUMIDITY')19+

off(type: SensorId.HUMIDITY, sensorInfoParam?: SensorInfoParam, callback?: Callback<HumidityResponse>): void

Unsubscribes from data of the humidity sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.HUMIDITY Yes Sensor type. The value is fixed at SensorId.HUMIDITY.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<HumidityResponse> 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 following error codes, see Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.HumidityResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.HUMIDITY;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.LINEAR_ACCELEROMETER')9+

off(type: SensorId.LINEAR_ACCELEROMETER, callback?: Callback<LinearAccelerometerResponse>): void

Unsubscribes from data of the linear acceleration sensor.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.LINEAR_ACCELEROMETER Yes Sensor type. The value is fixed at SensorId.LINEAR_ACCELERATION.
callback Callback<LinearAccelerometerResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.LINEAR_ACCELEROMETER, callback1);
  sensor.on(sensor.SensorId.LINEAR_ACCELEROMETER, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.LINEAR_ACCELEROMETER, callback1);
  // Unsubscribe from all callbacks of the SensorId.LINEAR_ACCELEROMETER type.
  sensor.off(sensor.SensorId.LINEAR_ACCELEROMETER);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.LINEAR_ACCELEROMETER')19+

off(type: SensorId.LINEAR_ACCELEROMETER, sensorInfoParam?: SensorInfoParam, callback?: Callback<LinearAccelerometerResponse>): void

Unsubscribes from data of the linear acceleration sensor.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.LINEAR_ACCELEROMETER Yes Sensor type. The value is fixed at SensorId.LINEAR_ACCELERATION.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<LinearAccelerometerResponse> 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 Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.LinearAccelerometerResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.LINEAR_ACCELEROMETER;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.MAGNETIC_FIELD')9+

off(type: SensorId.MAGNETIC_FIELD, callback?: Callback<MagneticFieldResponse>): void

Unsubscribes from data of the magnetic field sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.MAGNETIC_FIELD Yes Sensor type. The value is fixed at SensorId.MAGNETIC_FIELD.
callback Callback<MagneticFieldResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.MAGNETIC_FIELD, callback1);
  sensor.on(sensor.SensorId.MAGNETIC_FIELD, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.MAGNETIC_FIELD, callback1);
  // Unsubscribe from all callbacks of the SensorId.MAGNETIC_FIELD type.
  sensor.off(sensor.SensorId.MAGNETIC_FIELD);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.MAGNETIC_FIELD')19+

off(type: SensorId.MAGNETIC_FIELD, sensorInfoParam?: SensorInfoParam, callback?: Callback<MagneticFieldResponse>): void

Unsubscribes from data of the magnetic field sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.MAGNETIC_FIELD Yes Sensor type. The value is fixed at SensorId.MAGNETIC_FIELD.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<MagneticFieldResponse> 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 following error codes, see Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.MagneticFieldResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.MAGNETIC_FIELD;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.MAGNETIC_FIELD_UNCALIBRATED')9+

off(type: SensorId.MAGNETIC_FIELD_UNCALIBRATED, callback?: Callback<MagneticFieldUncalibratedResponse>): void

Unsubscribes from data of the uncalibrated magnetic field sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.MAGNETIC_FIELD_UNCALIBRATED Yes Sensor type. The value is fixed at SensorId.MAGNETIC_FIELD_UNCALIBRATED.
callback Callback<MagneticFieldUncalibratedResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.MAGNETIC_FIELD_UNCALIBRATED, callback1);
  sensor.on(sensor.SensorId.MAGNETIC_FIELD_UNCALIBRATED, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.MAGNETIC_FIELD_UNCALIBRATED, callback1);
  // Unsubscribe from all callbacks of the SensorId.MAGNETIC_FIELD_UNCALIBRATED type.
  sensor.off(sensor.SensorId.MAGNETIC_FIELD_UNCALIBRATED);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.MAGNETIC_FIELD_UNCALIBRATED')19+

off(type: SensorId.MAGNETIC_FIELD_UNCALIBRATED, sensorInfoParam?: SensorInfoParam, callback?: Callback<MagneticFieldUncalibratedResponse>): void

Unsubscribes from data of the uncalibrated magnetic field sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.MAGNETIC_FIELD_UNCALIBRATED Yes Sensor type. The value is fixed at SensorId.MAGNETIC_FIELD_UNCALIBRATED.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<MagneticFieldUncalibratedResponse> 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.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.MagneticFieldUncalibratedResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.MAGNETIC_FIELD_UNCALIBRATED;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.ORIENTATION')9+

off(type: SensorId.ORIENTATION, callback?: Callback<OrientationResponse>): void

Unsubscribes from data of the orientation sensor.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ORIENTATION Yes Sensor type. The value is fixed at SensorId.ORIENTATION.
callback Callback<OrientationResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.ORIENTATION, callback1);
  sensor.on(sensor.SensorId.ORIENTATION, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.ORIENTATION, callback1);
  // Unsubscribe from all callbacks of the SensorId.ORIENTATION type.
  sensor.off(sensor.SensorId.ORIENTATION);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.ORIENTATION')19+

off(type: SensorId.ORIENTATION, sensorInfoParam?: SensorInfoParam, callback?: Callback<OrientationResponse>): void

Unsubscribes from data of the orientation sensor.

Atomic service API: This API can be used in atomic services since API version 19.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ORIENTATION Yes Sensor type. The value is fixed at SensorId.ORIENTATION.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<OrientationResponse> 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 following error codes, see Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.OrientationResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.ORIENTATION;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.PEDOMETER')9+

off(type: SensorId.PEDOMETER, callback?: Callback<PedometerResponse>): void

Unsubscribes from data of the pedometer sensor.

Required permissions: ohos.permission.ACTIVITY_MOTION

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.PEDOMETER Yes Sensor type. The value is fixed at SensorId.PEDOMETER.
callback Callback<PedometerResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.PEDOMETER, callback1);
  sensor.on(sensor.SensorId.PEDOMETER, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.PEDOMETER, callback1);
  // Unsubscribe from all callbacks of the SensorId.PEDOMETER type.
  sensor.off(sensor.SensorId.PEDOMETER);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.PEDOMETER')19+

off(type: SensorId.PEDOMETER, sensorInfoParam?: SensorInfoParam, callback?: Callback<PedometerResponse>): void

Unsubscribes from data of the pedometer sensor.

Required permissions: ohos.permission.ACTIVITY_MOTION

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.PEDOMETER Yes Sensor type. The value is fixed at SensorId.PEDOMETER.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<PedometerResponse> 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 Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.PedometerResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.PEDOMETER;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.PEDOMETER_DETECTION')9+

off(type: SensorId.PEDOMETER_DETECTION, callback?: Callback<PedometerDetectionResponse>): void

Unsubscribes from data of the pedometer detection sensor.

Required permissions: ohos.permission.ACTIVITY_MOTION

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.PEDOMETER_DETECTION Yes Sensor type. The value is fixed at SensorId.PEDOMETER_DETECTION.
callback Callback<PedometerDetectionResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.PEDOMETER_DETECTION, callback1);
  sensor.on(sensor.SensorId.PEDOMETER_DETECTION, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.PEDOMETER_DETECTION, callback1);
  // Unsubscribe from all callbacks of the SensorId.PEDOMETER_DETECTION type.
  sensor.off(sensor.SensorId.PEDOMETER_DETECTION);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.PEDOMETER_DETECTION')19+

off(type: SensorId.PEDOMETER_DETECTION, sensorInfoParam?: SensorInfoParam, callback?: Callback<PedometerDetectionResponse>): void

Unsubscribes from data of the pedometer detection sensor.

Required permissions: ohos.permission.ACTIVITY_MOTION

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.PEDOMETER_DETECTION Yes Sensor type. The value is fixed at SensorId.PEDOMETER_DETECTION.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<PedometerDetectionResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
201 Permission denied.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.PedometerDetectionResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.PEDOMETER_DETECTION;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.PROXIMITY')9+

off(type: SensorId.PROXIMITY, callback?: Callback<ProximityResponse>): void

Unsubscribes from data of the proximity sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.PROXIMITY Yes Sensor type. The value is fixed at SensorId.PROXIMITY.
callback Callback<ProximityResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.PROXIMITY, callback1);
  sensor.on(sensor.SensorId.PROXIMITY, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.PROXIMITY, callback1);
  // Unsubscribe from all callbacks of the SensorId.PROXIMITY type.
  sensor.off(sensor.SensorId.PROXIMITY);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.PROXIMITY')19+

off(type: SensorId.PROXIMITY, sensorInfoParam?: SensorInfoParam, callback?: Callback<ProximityResponse>): void

Unsubscribes from data of the proximity sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.PROXIMITY Yes Sensor type. The value is fixed at SensorId.PROXIMITY.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<ProximityResponse> 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 following error codes, see Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.ProximityResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.PROXIMITY;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.ROTATION_VECTOR')9+

off(type: SensorId.ROTATION_VECTOR, callback?: Callback<RotationVectorResponse>): void

Unsubscribes from data of the rotation vector sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ROTATION_VECTOR Yes Sensor type. The value is fixed at SensorId.ROTATION_VECTOR.
callback Callback<RotationVectorResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.ROTATION_VECTOR, callback1);
  sensor.on(sensor.SensorId.ROTATION_VECTOR, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.ROTATION_VECTOR, callback1);
  // Unsubscribe from all callbacks of the SensorId.ROTATION_VECTOR type.
  sensor.off(sensor.SensorId.ROTATION_VECTOR);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.ROTATION_VECTOR')19+

off(type: SensorId.ROTATION_VECTOR, sensorInfoParam?: SensorInfoParam, callback?: Callback<RotationVectorResponse>): void

Unsubscribes from data of the rotation vector sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.ROTATION_VECTOR Yes Sensor type. The value is fixed at SensorId.ROTATION_VECTOR.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<RotationVectorResponse> 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 following error codes, see Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.RotationVectorResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.ROTATION_VECTOR;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.SIGNIFICANT_MOTION')9+

off(type: SensorId.SIGNIFICANT_MOTION, callback?: Callback<SignificantMotionResponse>): void

Unsubscribes from valid motion sensor data.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.SIGNIFICANT_MOTION Yes Sensor type. The value is fixed at SensorId.SIGNIFICANT_MOTION.
callback Callback<SignificantMotionResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.SIGNIFICANT_MOTION, callback1);
  sensor.on(sensor.SensorId.SIGNIFICANT_MOTION, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.SIGNIFICANT_MOTION, callback1);
  // Unsubscribe from all callbacks of the SensorId.SIGNIFICANT_MOTION type.
  sensor.off(sensor.SensorId.SIGNIFICANT_MOTION);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.SIGNIFICANT_MOTION')19+

off(type: SensorId.SIGNIFICANT_MOTION, sensorInfoParam?: SensorInfoParam, callback?: Callback<SignificantMotionResponse>): void

Unsubscribes from valid motion sensor data.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.SIGNIFICANT_MOTION Yes Sensor type. The value is fixed at SensorId.SIGNIFICANT_MOTION.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<SignificantMotionResponse> 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 following error codes, see Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.SignificantMotionResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.SIGNIFICANT_MOTION;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('SensorId.WEAR_DETECTION')9+

off(type: SensorId.WEAR_DETECTION, callback?: Callback<WearDetectionResponse>): void

Unsubscribes from data of the wear detection sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId Yes Sensor type. The value is fixed at SensorId.WEAR_DETECTION.
callback Callback<WearDetectionResponse> 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. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.

Example

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));
}

// Use try catch to capture possible exceptions.
try {
  sensor.on(sensor.SensorId.WEAR_DETECTION, callback1);
  sensor.on(sensor.SensorId.WEAR_DETECTION, callback2);
  // Unsubscribe from callback1.
  sensor.off(sensor.SensorId.WEAR_DETECTION, callback1);
  // Unsubscribe from all callbacks of the SensorId.WEAR_DETECTION type.
  sensor.off(sensor.SensorId.WEAR_DETECTION);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke off. Code: ${e.code}, message: ${e.message}`);
}

sensor.off('SensorId.WEAR_DETECTION')19+

off(type: SensorId.WEAR_DETECTION, sensorInfoParam?: SensorInfoParam, callback?: Callback<WearDetectionResponse>): void

Unsubscribes from data of the wear detection sensor.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId.WEAR_DETECTION Yes Sensor type. The value is fixed at SensorId.WEAR_DETECTION.
sensorInfoParam SensorInfoParam No Sensor parameters, including deviceId and sensorIndex.
callback Callback<WearDetectionResponse> 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 following error codes, see Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

enum Ret { OK, Failed = -1 }

// Sensor callback
const sensorCallback = (response: sensor.WearDetectionResponse) => {
  console.info(`callback response: ${JSON.stringify(response)}`);
}
// Sensor type
const sensorType = sensor.SensorId.WEAR_DETECTION;
const sensorInfoParam: sensor.SensorInfoParam = { deviceId: -1, sensorIndex: 0 };

function sensorSubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    // Query all sensors.
    const sensorList: sensor.Sensor[] = sensor.getSensorListSync();
    if (!sensorList.length) {
      return Ret.Failed;
    }
    // Obtain the target sensor based on the actual service logic.
    const targetSensor = sensorList
      // Filter all sensors with deviceId 1 and sensorId 2 as required. This example is for reference only. You need to adjust the filtering logic accordingly.
      .filter((sensor: sensor.Sensor) => sensor.deviceId === 1 && sensor.sensorId === 2)
      // Select the sensor with sensorIndex 0 among all sensors of the same type.
      .find((sensor: sensor.Sensor) => sensor.sensorIndex === 0);
    if (!targetSensor) {
      return Ret.Failed;
    }
    sensorInfoParam.deviceId = targetSensor.deviceId;
    sensorInfoParam.sensorIndex = targetSensor.sensorIndex;
    // Subscribe to sensor events.
    sensor.on(sensorType, sensorCallback, { sensorInfoParam });
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.on. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

function sensorUnsubscribe(): Ret {
  let ret: Ret = Ret.OK;
  // Use try catch to capture possible exceptions.
  try {
    sensor.off(sensorType, sensorInfoParam, sensorCallback);
  } catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to invoke sensor.off. Code: ${e.code}, message: ${e.message}`);
    ret = Ret.Failed;
  }
  return ret;
}

sensor.off('sensorStatusChange')19+

off(type: 'sensorStatusChange', callback?: Callback<SensorStatusEvent>): void

Disables listening for sensor status changes.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type string Yes Event type. The value sensorStatusChange indicates the sensor status change event.
callback Callback<SensorStatusEvent> No Callback passed to sensor.on. If this parameter is left unspecified, listening will be disabled for all callbacks.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  const statusChangeCallback = (data: sensor.SensorStatusEvent) => {
    console.info('sensorStatusChange : ' + JSON.stringify(data));
  }
  const statusChangeCallback2 = (data: sensor.SensorStatusEvent) => {
    console.info('sensorStatusChange2 : ' + JSON.stringify(data));
  }
  // Register two callback listeners for device online events.
  sensor.on('sensorStatusChange', statusChangeCallback);
  sensor.on('sensorStatusChange', statusChangeCallback2);
  
  // Unregister the first listener after 3 seconds.
  setTimeout(() => {
    sensor.off('sensorStatusChange', statusChangeCallback);
  }, 3000);
  // Unregister the other listener after 5 seconds.
  setTimeout(() => {
    sensor.off('sensorStatusChange');
  }, 5000);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to invoke on. Code: ${e.code}, message: ${e.message}`);
}

sensor.getSensorListByDeviceSync19+

getSensorListByDeviceSync(deviceId?: number): Array<Sensor>

Obtains the information about all sensors on the device.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
deviceId number No Device ID. The default value is -1, indicating the local device. You can use getSensorList or sensorStatusChange to obtain the device ID.

Return value

Type Description
Array<Sensor> Sensor attribute list.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

try {
  const deviceId = 1;
  // The first deviceId is optional. By default, it is set to the ID of the local device.
  const sensorList: sensor.Sensor[] = sensor.getSensorListByDeviceSync(deviceId);
  console.info(`sensorList length: ${sensorList.length}`);
  console.info(`sensorList: ${JSON.stringify(sensorList)}`);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get sensorList. Code: ${e.code}, message: ${e.message}`);
}

sensor.getSingleSensorByDeviceSync19+

getSingleSensorByDeviceSync(type: SensorId, deviceId?: number): Array<Sensor>

Obtains information about the sensor of a specific type.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId Yes Sensor type.
deviceId number No Device ID. The default value is -1, indicating the local device. You can use getSensorList or sensorStatusChange to obtain the device ID.

Return value

Type Description
Array<Sensor> Sensor attribute list.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

try {
  const deviceId = 1;
  // The second deviceId is optional.
  const sensorList: sensor.Sensor[] = sensor.getSingleSensorByDeviceSync(sensor.SensorId.ACCELEROMETER, deviceId);
  console.info(`sensorList length: ${sensorList.length}`);
  console.info(`sensorList Json: ${JSON.stringify(sensorList)}`);
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get sensorList. Code: ${e.code}, message: ${e.message}`);
}

sensor.getGeomagneticInfo9+

getGeomagneticInfo(locationOptions: LocationOptions, timeMillis: number, callback: AsyncCallback<GeomagneticResponse>): void

Obtains the geomagnetic field of a geographic location at a certain time. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
locationOptions LocationOptions Yes Geographic location, including the longitude, latitude, and altitude.
timeMillis number Yes Time when the magnetic declination is obtained. The value is a Unix timestamp, in ms.
callback AsyncCallback<GeomagneticResponse> Yes Callback used to return the geomagnetic field.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.getGeomagneticInfo({ latitude: 80, longitude: 0, altitude: 0 }, 1580486400000,
      (err: BusinessError, data: sensor.GeomagneticResponse) => {
    if (err) {
      console.error(`Failed to get geomagneticInfo. Code: ${err.code}, message: ${err.message}`);
      return;
    }
    console.info("Succeeded in getting geomagneticInfo x" + data.x);
    console.info("Succeeded in getting geomagneticInfo y" + data.y);
    console.info("Succeeded in getting geomagneticInfo z" + data.z);
    console.info("Succeeded in getting geomagneticInfo geomagneticDip" + data.geomagneticDip);
    console.info("Succeeded in getting geomagneticInfo deflectionAngle" + data.deflectionAngle);
    console.info("Succeeded in getting geomagneticInfo levelIntensity" + data.levelIntensity);
    console.info("Succeeded in getting geomagneticInfo totalIntensity" + data.totalIntensity);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get geomagneticInfo. Code: ${e.code}, message: ${e.message}`);
}

sensor.getGeomagneticInfo9+

getGeomagneticInfo(locationOptions: LocationOptions, timeMillis: number): Promise<GeomagneticResponse>

Obtains the geomagnetic field of a geographic location at a certain time. This API uses a promise to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
locationOptions LocationOptions Yes Geographic location, including the longitude, latitude, and altitude.
timeMillis number Yes Time when the magnetic declination is obtained. The value is a Unix timestamp, in ms.

Return value

Type Description
Promise<GeomagneticResponse> Promise used to return the geomagnetic field.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  const promise = sensor.getGeomagneticInfo({ latitude: 80, longitude: 0, altitude: 0 }, 1580486400000);
  promise.then((data: sensor.GeomagneticResponse) => {
    console.info("Succeeded in getting geomagneticInfo x" + data.x);
    console.info("Succeeded in getting geomagneticInfo y" + data.y);
    console.info("Succeeded in getting geomagneticInfo z" + data.z);
    console.info("Succeeded in getting geomagneticInfo geomagneticDip" + data.geomagneticDip);
    console.info("Succeeded in getting geomagneticInfo deflectionAngle" + data.deflectionAngle);
    console.info("Succeeded in getting geomagneticInfo levelIntensity" + data.levelIntensity);
    console.info("Succeeded in getting geomagneticInfo totalIntensity" + data.totalIntensity);
  }, (err: BusinessError) => {
    console.error(`Failed to get geomagneticInfo. Code: ${err.code}, message: ${err.message}`);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get geomagneticInfo. Code: ${e.code}, message: ${e.message}`);
}

sensor.getDeviceAltitude9+

getDeviceAltitude(seaPressure: number, currentPressure: number, callback: AsyncCallback<number>): void

Obtains the altitude based on the atmospheric pressure. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
seaPressure number Yes Sea-level atmospheric pressure, in hPa.
currentPressure number Yes Specified atmospheric pressure, in hPa.
callback AsyncCallback<number> Yes Callback used to return the altitude, in meters.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  let seaPressure = 1013.2;
  let currentPressure = 1500.0;
  sensor.getDeviceAltitude(seaPressure, currentPressure, (err: BusinessError, data: number) => {
    if (err) {
      console.error(`Failed to get altitude. Code: ${err.code}, message: ${err.message}`);
      return;
    }
    console.info('Succeeded in getting altitude: ' + data);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get altitude. Code: ${e.code}, message: ${e.message}`);
}

sensor.getDeviceAltitude9+

getDeviceAltitude(seaPressure: number, currentPressure: number): Promise<number>

Obtains the altitude based on the atmospheric pressure. This API uses a promise to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
seaPressure number Yes Sea-level atmospheric pressure, in hPa.
currentPressure number Yes Specified atmospheric pressure, in hPa.

Return value

Type Description
Promise<number> Promise used to return the altitude, in meters.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  let seaPressure = 1013.2;
  let currentPressure = 1500.0;
  const promise = sensor.getDeviceAltitude(seaPressure, currentPressure);
  promise.then((data: number) => {
    console.info('Succeeded in getting sensor_getDeviceAltitude_Promise', data);
  }, (err: BusinessError) => {
    console.error(`Failed to get altitude. Code: ${err.code}, message: ${err.message}`);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get altitude. Code: ${e.code}, message: ${e.message}`);
}

sensor.getInclination9+

getInclination(inclinationMatrix: Array<number>, callback: AsyncCallback<number>): void

Obtains the magnetic dip based on the inclination matrix. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
inclinationMatrix Array<number> Yes Inclination matrix.
callback AsyncCallback<number> Yes Callback used to return the magnetic dip, in radians.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  // inclinationMatrix can be 3*3 or 4*4.
  let inclinationMatrix = [
    1, 0, 0,
    0, 1, 0,
    0, 0, 1
  ]
  sensor.getInclination(inclinationMatrix, (err: BusinessError, data: number) => {
    if (err) {
      console.error(`Failed to get inclination. Code: ${err.code}, message: ${err.message}`);
      return;
    }
    console.info('Succeeded in getting inclination: ' + data);
  })
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get inclination. Code: ${e.code}, message: ${e.message}`);
}

sensor.getInclination9+

getInclination(inclinationMatrix: Array<number>): Promise<number>

Obtains the magnetic dip based on the inclination matrix. This API uses a promise to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
inclinationMatrix Array<number> Yes Inclination matrix.

Return value

Type Description
Promise<number> Promise used to return the magnetic dip, in radians.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  // inclinationMatrix can be 3*3 or 4*4.
  let inclinationMatrix = [
    1, 0, 0,
    0, 1, 0,
    0, 0, 1
  ]
  const promise = sensor.getInclination(inclinationMatrix);
  promise.then((data: number) => {
    console.info('Succeeded in getting inclination: ' + data);
  }, (err: BusinessError) => {
    console.error(`Failed to get inclination. Code: ${err.code}, message: ${err.message}`);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get inclination. Code: ${e.code}, message: ${e.message}`);
}

sensor.getAngleVariation9+

getAngleVariation(currentRotationMatrix: Array<number>, preRotationMatrix: Array<number>, callback: AsyncCallback<Array<number>>): void

Obtains the angle change between two rotation matrices. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
currentRotationMatrix Array<number> Yes Current rotation matrix.
preRotationMatrix Array<number> Yes The other rotation matrix.
callback AsyncCallback<Array<number>> Yes Asynchronous callback used to return the rotation angles around the z, x, and y axes, in degrees (°).

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  // The rotation matrix can be 3*3 or 4*4.
  let currentRotationMatrix = [
    1, 0, 0,
    0, 1, 0,
    0, 0, 1
  ];
  let preRotationMatrix = [
    1, 0, 0,
    0, 0.87, -0.50,
    0, 0.50, 0.87
  ];
  sensor.getAngleVariation(currentRotationMatrix, preRotationMatrix, (err: BusinessError, data: Array<number>) => {
    if (err) {
      console.error(`Failed to get angle variation. Code: ${err.code}, message: ${err.message}`);
      return;
    }
    if (data.length < 3) {
      console.error("Failed to get angle variation, length" + data.length);
      return;
    }
    console.info("Z: " + data[0]);
    console.info("X: " + data[1]);
    console.info("Y: " + data[2]);
  })
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get angle variation. Code: ${e.code}, message: ${e.message}`);
}

sensor.getAngleVariation9+

getAngleVariation(currentRotationMatrix: Array<number>, preRotationMatrix: Array<number>): Promise<Array<number>>

Obtains the angle change between two rotation matrices. This API uses a promise to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
currentRotationMatrix Array<number> Yes Current rotation matrix.
preRotationMatrix Array<number> Yes The other rotation matrix.

Return value

Type Description
Promise<Array<number>> Promise used to return the rotation angles around the z, x, and y axes, in degrees (°).

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  // The rotation matrix can be 3*3 or 4*4.
  let currentRotationMatrix = [
    1, 0, 0,
    0, 1, 0,
    0, 0, 1
  ];
  let preRotationMatrix = [
    1, 0, 0,
    0, 0.87, -0.50,
    0, 0.50, 0.87
  ];
  const promise = sensor.getAngleVariation(currentRotationMatrix, preRotationMatrix);
  promise.then((data: Array<number>) => {
    if (data.length < 3) {
      console.error("Failed to get angle variation, length" + data.length);
      return;
    }
    console.info("Z: " + data[0]);
    console.info("X: " + data[1]);
    console.info("Y: " + data[2]);
  }, (err: BusinessError) => {
    console.error(`Failed to get angle variation. Code: ${err.code}, message: ${err.message}`);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get angle variation. Code: ${e.code}, message: ${e.message}`);
}

sensor.getRotationMatrix9+

getRotationMatrix(rotationVector: Array<number>, callback: AsyncCallback<Array<number>>): void

Obtains the rotation matrix from a rotation vector. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
rotationVector Array<number> Yes Rotation vector.
callback AsyncCallback<Array<number>> Yes Callback used to return the rotation matrix.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  let rotationVector = [0.20046076, 0.21907, 0.73978853, 0.60376877];
  sensor.getRotationMatrix(rotationVector, (err: BusinessError, data: Array<number>) => {
    if (err) {
      console.error(`Failed to get rotationMatrix. Code: ${err.code}, message: ${err.message}`);
      return;
    }
    for (let i = 0; i < data.length; i++) {
      console.info('Succeeded in getting data[' + i + ']: ' + data[i]);
    }
  })
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get rotationMatrix. Code: ${e.code}, message: ${e.message}`);
}

sensor.getRotationMatrix9+

getRotationMatrix(rotationVector: Array<number>): Promise<Array<number>>

Obtains the rotation matrix from a rotation vector. This API uses a promise to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
rotationVector Array<number> Yes Rotation vector.

Return value

Type Description
Promise<Array<number>> Promise used to return the rotation matrix.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  let rotationVector = [0.20046076, 0.21907, 0.73978853, 0.60376877];
  const promise = sensor.getRotationMatrix(rotationVector);
  promise.then((data: Array<number>) => {
    for (let i = 0; i < data.length; i++) {
      console.info('Succeeded in getting data[' + i + ']: ' + data[i]);
    }
  }, (err: BusinessError) => {
    console.error(`Failed to get rotationMatrix. Code: ${err.code}, message: ${err.message}`);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get rotationMatrix. Code: ${e.code}, message: ${e.message}`);
}

sensor.transformRotationMatrix9+

transformRotationMatrix(inRotationVector: Array<number>, coordinates: CoordinatesOptions, callback: AsyncCallback<Array<number>>): void

Transforms a rotation vector based on the coordinate system. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
inRotationVector Array<number> Yes Rotation vector.
coordinates CoordinatesOptions Yes Rotation vector to transform.
callback AsyncCallback<Array<number>> Yes Callback used to return the rotation vector after being transformed.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  let rotationMatrix = [
    1, 0, 0,
    0, 0.87, -0.50,
    0, 0.50, 0.87
  ];
  sensor.transformRotationMatrix(rotationMatrix, { x: 1, y: 3 }, (err: BusinessError, data: Array<number>) => {
    if (err) {
      console.error(`Failed to transform rotationMatrix. Code: ${err.code}, message: ${err.message}`);
      return;
    }
    for (let i = 0; i < data.length; i++) {
      console.info('Succeeded in getting data[' + i + '] = ' + data[i]);
    }
  })
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to transform rotationMatrix. Code: ${e.code}, message: ${e.message}`);
}

sensor.transformRotationMatrix9+

transformRotationMatrix(inRotationVector: Array<number>, coordinates: CoordinatesOptions): Promise<Array<number>>

Transforms a rotation vector based on the coordinate system. This API uses a promise to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
inRotationVector Array<number> Yes Rotation vector.
coordinates CoordinatesOptions Yes Rotation vector to transform.

Return value

Type Description
Promise<Array<number>> Promise used to return the rotation vector after being transformed.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  let rotationMatrix = [
    1, 0, 0,
    0, 0.87, -0.50,
    0, 0.50, 0.87
  ];
  const promise = sensor.transformRotationMatrix(rotationMatrix, { x: 1, y: 3 });
  promise.then((data: Array<number>) => {
    for (let i = 0; i < data.length; i++) {
      console.info('Succeeded in getting data[' + i + ']: ' + data[i]);
    }
  }, (err: BusinessError) => {
    console.error(`Failed to transform rotationMatrix. Code: ${err.code}, message: ${err.message}`);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to transform rotationMatrix. Code: ${e.code}, message: ${e.message}`);
}

sensor.getQuaternion9+

getQuaternion(rotationVector: Array<number>, callback: AsyncCallback<Array<number>>): void

Obtains the quaternion from a rotation vector. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
rotationVector Array<number> Yes Rotation vector.
callback AsyncCallback<Array<number>> Yes Callback used to return the quaternion.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  let rotationVector = [0.20046076, 0.21907, 0.73978853, 0.60376877];
  sensor.getQuaternion(rotationVector, (err: BusinessError, data: Array<number>) => {
    if (err) {
      console.error(`Failed to get quaternion. Code: ${err.code}, message: ${err.message}`);
      return;
    }
    for (let i = 0; i < data.length; i++) {
      console.info('Succeeded in getting data[' + i + ']: ' + data[i]);
    }
  })
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get quaternion. Code: ${e.code}, message: ${e.message}`);
}

sensor.getQuaternion9+

getQuaternion(rotationVector: Array<number>): Promise<Array<number>>

Obtains the quaternion from a rotation vector. This API uses a promise to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
rotationVector Array<number> Yes Rotation vector.

Return value

Type Description
Promise<Array<number>> Promise used to return the quaternion.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
    let rotationVector = [0.20046076, 0.21907, 0.73978853, 0.60376877];
    const promise = sensor.getQuaternion(rotationVector);
    promise.then((data: Array<number>) => {
        for (let i = 0; i < data.length; i++) {
            console.info('Succeeded in getting data[' + i + ']: ' + data[i]);
        }
    }, (err: BusinessError) => {
        console.error(`Failed to get quaternion. Code: ${err.code}, message: ${err.message}`);
    });
} catch (error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to get quaternion. Code: ${e.code}, message: ${e.message}`);
}

sensor.getOrientation9+

getOrientation(rotationMatrix: Array<number>, callback: AsyncCallback<Array<number>>): void

Obtains the device direction based on the rotation matrix. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
rotationMatrix Array<number> Yes Rotation matrix.
callback AsyncCallback<Array<number>> Yes Asynchronous callback used to return the rotation angles around the z, x, and y axes, in degrees (°).

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  let preRotationMatrix = [
    1, 0, 0,
    0, 0.87, -0.50,
    0, 0.50, 0.87
  ];
  sensor.getOrientation(preRotationMatrix, (err: BusinessError, data: Array<number>) => {
    if (err) {
      console.error(`Failed to get orientation. Code: ${err.code}, message: ${err.message}`);
      return;
    }
    if (data.length < 3) {
      console.error("Failed to get orientation, length" + data.length);
    }
    console.info("Succeeded in getting data. Z: " + data[0]);
    console.info("Succeeded in getting data. X: " + data[1]);
    console.info("Succeeded in getting data. Y: " + data[2]);
  })
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get orientation. Code: ${e.code}, message: ${e.message}`);
}

sensor.getOrientation9+

getOrientation(rotationMatrix: Array<number>): Promise<Array<number>>

Obtains the device direction based on the rotation matrix. This API uses a promise to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
rotationMatrix Array<number> Yes Rotation matrix.

Return value

Type Description
Promise<Array<number>> Promise used to return the rotation angles around the z, x, and y axes, in degrees (°).

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  let preRotationMatrix = [
    1, 0, 0,
    0, 0.87, -0.50,
    0, 0.50, 0.87
  ];
  const promise = sensor.getOrientation(preRotationMatrix);
  promise.then((data: Array<number>) => {
    for (let i = 0; i < data.length; i++) {
      console.info('Succeeded in getting data[' + i + ']: ' + data[i]);
    }
  }, (err: BusinessError) => {
    console.error(`Failed to getOrientation. Code: ${err.code}, message: ${err.message}`);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to getOrientation Code: ${e.code}, message: ${e.message}`);
}

sensor.getRotationMatrix9+

getRotationMatrix(gravity: Array<number>, geomagnetic: Array<number>, callback: AsyncCallback<RotationMatrixResponse>): void

Obtains the rotation matrix based on a gravity vector and geomagnetic vector. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
gravity Array<number> Yes Gravity vector.
geomagnetic Array<number> Yes Geomagnetic vector.
callback AsyncCallback<RotationMatrixResponse> Yes Callback used to return the rotation matrix.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  let gravity = [-0.27775216, 0.5351276, 9.788099];
  let geomagnetic = [210.87253, -78.6096, -111.44444];
  sensor.getRotationMatrix(gravity, geomagnetic, (err: BusinessError, data: sensor.RotationMatrixResponse) => {
    if (err) {
      console.error(`Failed to get rotationMatrix. Code: ${err.code}, message: ${err.message}`);
      return;
    }
    console.info('Succeeded in getting rotationMatrix' + JSON.stringify(data));
  })
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get rotationMatrix. Code: ${e.code}, message: ${e.message}`);
}

sensor.getRotationMatrix9+

getRotationMatrix(gravity: Array<number>, geomagnetic: Array<number>): Promise<RotationMatrixResponse>

Obtains the rotation matrix based on a gravity vector and geomagnetic vector. This API uses a promise to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
gravity Array<number> Yes Gravity vector.
geomagnetic Array<number> Yes Geomagnetic vector.

Return value

Type Description
Promise<RotationMatrixResponse> Promise used to return the rotation matrix.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  let gravity = [-0.27775216, 0.5351276, 9.788099];
  let geomagnetic = [210.87253, -78.6096, -111.44444];
  const promise = sensor.getRotationMatrix(gravity, geomagnetic);
  promise.then((data: sensor.RotationMatrixResponse) => {
    console.info('Succeeded in getting rotationMatrix' + JSON.stringify(data));
  }, (err: BusinessError) => {
    console.error(`Failed to get rotationMatrix. Code: ${err.code}, message: ${err.message}`);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get rotationMatrix. Code: ${e.code}, message: ${e.message}`);
}

sensor.getSensorList9+

getSensorList(callback: AsyncCallback<Array<Sensor>>): void

Obtains information about all sensors on the device. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
callback AsyncCallback<Array<Sensor>> Yes Callback used to return the sensor list.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.getSensorList((err: BusinessError, data: Array<sensor.Sensor>) => {
    if (err) {
      console.error(`Failed to get sensorList. Code: ${err.code}, message: ${err.message}`);
      return;
    }
    for (let i = 0; i < data.length; i++) {
      console.info('Succeeded in getting data[' + i + ']: ' + JSON.stringify(data[i]));
    }
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get sensorList. Code: ${e.code}, message: ${e.message}`);
}

sensor.getSensorList9+

getSensorList(): Promise<Array<Sensor>>

Obtains information about all sensors on the device. This API uses a promise to return the result.

System capability: SystemCapability.Sensors.Sensor

Return value

Type Description
Promise<Array<Sensor>> Promise used to return the sensor list.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.getSensorList().then((data: Array<sensor.Sensor>) => {
    for (let i = 0; i < data.length; i++) {
      console.info('Succeeded in getting data[' + i + ']: ' + JSON.stringify(data[i]));
    }
  }, (err: BusinessError) => {
    console.error(`Failed to get sensorList. Code: ${err.code}, message: ${err.message}`);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get sensorList. Code: ${e.code}, message: ${e.message}`);
}

sensor.getSensorListSync12+

getSensorListSync(): Array<Sensor>

Obtains information about all sensors on the device. This API returns the result synchronously.

System capability: SystemCapability.Sensors.Sensor

Return value

Type Description
Array<Sensor> List of sensor attributes.

Error codes

For details about the following error codes, see Sensor Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  let ret = sensor.getSensorListSync()
  for (let i = 0; i < ret.length; i++) {
    console.info('Succeeded in getting sensor: ' + JSON.stringify(ret[i]));
  }
} catch(error) {
    let e: BusinessError = error as BusinessError;
    console.error(`Failed to get singleSensor . Code: ${e.code}, message: ${e.message}`);
}

sensor.getSingleSensor9+

getSingleSensor(type: SensorId, callback: AsyncCallback<Sensor>): void

Obtains information about the sensor of a specific type. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId Yes Sensor type.
callback AsyncCallback<Sensor> Yes Callback used to return the sensor information.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.
14500102 The sensor is not supported by the device.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.getSingleSensor(sensor.SensorId.ACCELEROMETER, (err: BusinessError, data: sensor.Sensor) => {
    if (err) {
      console.error(`Failed to get singleSensor. Code: ${err.code}, message: ${err.message}`);
      return;
    }
    console.info('Succeeded in getting sensor: ' + JSON.stringify(data));
    sensor.on(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => {
      console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
      console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
      console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
    }, { interval: 100000000 });
    setTimeout(() => {
      sensor.off(sensor.SensorId.ACCELEROMETER);
    }, 500);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get singleSensor. Code: ${e.code}, message: ${e.message}`);
}

sensor.getSingleSensor9+

getSingleSensor(type: SensorId): Promise<Sensor>

Obtains information about the sensor of a specific type. This API uses a promise to return the result.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId Yes Sensor type.

Return value

Type Description
Promise<Sensor> Promise used to return the sensor information.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.
14500102 The sensor is not supported by the device.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  sensor.getSingleSensor(sensor.SensorId.ACCELEROMETER).then((data: sensor.Sensor) => {
    console.info('Succeeded in getting sensor: ' + JSON.stringify(data));
  }, (err: BusinessError) => {
    console.error(`Failed to get singleSensor . Code: ${err.code}, message: ${err.message}`);
  });
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get singleSensor . Code: ${e.code}, message: ${e.message}`);
}

sensor.getSingleSensorSync12+

getSingleSensorSync(type: SensorId): Sensor

Obtains information about the sensor of a specific type. This API returns the result synchronously.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorId Yes Sensor type.

Return value

Type Description
Sensor Sensor information.

Error codes

For details about the error codes, see Sensor Error Codes and Universal Error Codes. Error codes and error information are reported as exceptions. You need to use try catch to capture the exceptions that may occur during an API call.

ID Error Message
401 Parameter error.Possible causes:1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed.
14500101 Service exception.Possible causes:1. Sensor hdf service exception;2. Sensor service ipc exception;3.Sensor data channel exception.
14500102 The sensor is not supported by the device.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

// Use try catch to capture possible exceptions.
try {
  let ret = sensor.getSingleSensorSync(sensor.SensorId.ACCELEROMETER);
  console.info('Succeeded in getting sensor: ' + JSON.stringify(ret));
} catch (error) {
  let e: BusinessError = error as BusinessError;
  console.error(`Failed to get singleSensor . Code: ${e.code}, message: ${e.message}`);
}

SensorId9+

Enumerates the sensor types.

System capability: SystemCapability.Sensors.Sensor

Name Value Description
ACCELEROMETER 1 Acceleration sensor.
Atomic service API: This API can be used in atomic services since API version 11.
GYROSCOPE 2 Gyroscope sensor.
Atomic service API: This API can be used in atomic services since API version 11.
AMBIENT_LIGHT 5 Ambient light sensor.
MAGNETIC_FIELD 6 Magnetic field sensor.
BAROMETER 8 Barometer sensor.
HALL 10 Hall effect sensor.
PROXIMITY 12 Proximity sensor.
HUMIDITY 13 Humidity sensor.
ORIENTATION 256 Orientation sensor.
Atomic service API: This API can be used in atomic services since API version 11.
GRAVITY 257 Gravity sensor.
LINEAR_ACCELEROMETER 258 Linear acceleration sensor.
ROTATION_VECTOR 259 Rotation vector sensor.
AMBIENT_TEMPERATURE 260 Ambient temperature sensor.
MAGNETIC_FIELD_UNCALIBRATED 261 Uncalibrated magnetic field sensor.
GYROSCOPE_UNCALIBRATED 263 Uncalibrated gyroscope sensor.
SIGNIFICANT_MOTION 264 Significant motion sensor.
PEDOMETER_DETECTION 265 Pedometer detection sensor.
PEDOMETER 266 Pedometer sensor.
HEART_RATE 278 Heart rate sensor.
WEAR_DETECTION 280 Wear detection sensor.
ACCELEROMETER_UNCALIBRATED 281 Uncalibrated acceleration sensor.
FUSION_PRESSURE22+ 283 Fused pressure sensor.
This sensor is available only on smart watches.

SensorInfoParam19+

Defines sensor parameters, including deviceId and sensorIndex.

System capability: SystemCapability.Sensors.Sensor

Atomic service API: This API can be used in atomic services since API version 19.

Name Type Read-Only Optional Description
deviceId number No Yes Device ID. The default value is -1, indicating the local device. You can use getSensorList or sensorStatusChange to obtain the device ID.
sensorIndex number No Yes Sensor index. The default value is 0, indicating the default sensor on the device. You can use getSensorList or sensorStatusChange to obtain the sensor index.

SensorStatusEvent19+

Defines a device status change event.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
timestamp number No No Timestamp when the event occurs, in milliseconds.
sensorId number No No Sensor ID.
sensorIndex number No No Sensor index.
isSensorOnline boolean No No Sensor status. The value true indicates that the sensor is online, and the value false indicates the opposite.
deviceId number No No Device ID.
deviceName string No No Device name.

SensorAccuracy11+

Enumerates the accuracy levels of sensor data.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Sensors.Sensor

Name Value Description
ACCURACY_UNRELIABLE 0 The sensor data is unreliable.
ACCURACY_LOW 1 The sensor data is at a low accuracy level.
ACCURACY_MEDIUM 2 The sensor data is at a medium accuracy level.
ACCURACY_HIGH 3 The sensor data is at a high accuracy level.

Response

Describes the timestamp of the sensor data.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
timestamp number No No Timestamp when the sensor reports data. Time from device startup to data reporting, in nanoseconds.
accuracy11+ SensorAccuracy11+ No No Accuracy of the sensor data.

Sensor9+

Describes the sensor information.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
sensorName string No No Sensor name.
vendorName string No No Vendor of the sensor.
firmwareVersion string No No Firmware version of the sensor.
hardwareVersion string No No Hardware version of the sensor.
sensorId number No No Sensor type ID.
maxRange number No No Maximum measurement range of the sensor.
minSamplePeriod number No No Minimum sampling period.
maxSamplePeriod number No No Maximum sampling period.
precision number No No Precision of the sensor.
power number No No Estimated sensor power, in mA.
sensorIndex19+ number No Yes Sensor index.
deviceId19+ number No Yes Device ID.
deviceName19+ string No Yes Device name.
isLocalSensor19+ boolean No Yes Whether the sensor is a local sensor. The value true indicates a local sensor, and the value false indicates the opposite.
isMockSensor23+ boolean No Yes Whether the sensor is a mock sensor. The value true indicates a mock sensor, and the value false indicates the opposite.

AccelerometerResponse

Describes the acceleration sensor data. It extends from Response.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
x number No No Acceleration along the x-axis of the device, in m/s². The value is equal to the reported physical quantity.
y number No No Acceleration along the y-axis of the device, in m/s². The value is equal to the reported physical quantity.
z number No No Acceleration along the z-axis of the device, in m/s². The value is equal to the reported physical quantity.

LinearAccelerometerResponse

Describes the linear acceleration sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
x number No No Linear acceleration along the x-axis of the device, in m/s².
y number No No Linear acceleration along the y-axis of the device, in m/s².
z number No No Linear acceleration along the z-axis of the device, in m/s².

AccelerometerUncalibratedResponse

Describes the uncalibrated acceleration sensor data. It is inherited from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
x number No No Uncalibrated acceleration along the x-axis of the device, in m/s².
y number No No Uncalibrated acceleration along the y-axis of the device, in m/s².
z number No No Uncalibrated acceleration along the z-axis of the device, in m/s².
biasX number No No Uncalibrated acceleration bias along the x-axis of the device, in m/s².
biasY number No No Uncalibrated acceleration bias along the y-axis of the device, in m/s².
biasZ number No No Uncalibrated acceleration bias along the z-axis of the device, in m/s².

FusionPressureResponse22+

Describes the fusion pressure sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
fusionPressure number No No Pressure percentage on the fused pressure sensor, in percentage (%)

GravityResponse

Describes the gravity sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
x number No No Gravitational acceleration along the x-axis of the device, in m/s².
y number No No Gravitational acceleration along the y-axis of the device, in m/s².
z number No No Gravitational acceleration along the z-axis of the device, in m/s².

OrientationResponse

Describes the orientation sensor data. It extends from Response.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
alpha number No No Rotation angle of the device around the z-axis, in degrees. The value ranges from 0 to 360.
beta number No No Rotation angle of the device around the x-axis, in degrees. The value ranges from 0 to ±180.
gamma number No No Rotation angle of the device around the y-axis, in degrees. The value ranges from 0 to ±90.

RotationVectorResponse

Describes the rotation vector sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
x number No No X-component of the rotation vector.
y number No No Y-component of the rotation vector.
z number No No Z-component of the rotation vector.
w number No No Scalar, which describes the rotation status of the device relative to a reference direction, in radians

GyroscopeResponse

Describes the gyroscope sensor data. It extends from Response.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
x number No No Angular velocity of rotation around the x-axis of the device, in rad/s. The value is equal to the reported physical quantity.
y number No No Angular velocity of rotation around the y-axis of the device, in rad/s. The value is equal to the reported physical quantity.
z number No No Angular velocity of rotation around the z-axis of the device, in rad/s. The value is equal to the reported physical quantity.

GyroscopeUncalibratedResponse

Describes the uncalibrated gyroscope sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
x number No No Uncalibrated angular velocity of rotation around the x-axis of the device, in rad/s.
y number No No Uncalibrated angular velocity of rotation around the y-axis of the device, in rad/s.
z number No No Uncalibrated angular velocity of rotation around the z-axis of the device, in rad/s.
biasX number No No Uncalibrated angular velocity bias of rotation around the x-axis of the device, in rad/s.
biasY number No No Uncalibrated angular velocity bias of rotation around the y-axis of the device, in rad/s.
biasZ number No No Uncalibrated angular velocity bias of rotation around the z-axis of the device, in rad/s.

SignificantMotionResponse

Describes the significant motion sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
scalar number No No Intensity of a motion. This parameter specifies whether a device has a significant motion on three physical axes (X, Y, and Z). The value 1 is reported when the device has a significant motion.

ProximityResponse

Describes the proximity sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
distance number No No Proximity between the visible object and the device monitor. The value 0 means the two are close to each other, and a value greater than 0 means that they are far away from each other.

LightResponse

Describes the ambient light sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
intensity number No No Illumination, in lux.
colorTemperature12+ number No Yes Color temperature, in Kelvin. This parameter is optional. If this parameter is not supported, a fixed value (customized by the sensor) is returned. If this parameter is supported, a normal value is returned.
infraredLuminance12+ number No Yes Infrared luminance, in cd/m². This parameter is optional. If this parameter is not supported, a fixed value (customized by the sensor) is returned. If this parameter is supported, a normal value is returned.

HallResponse

Describes the Hall effect sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
status number No No Hall effect sensor status. This parameter specifies whether a magnetic field exists around a device. The value 0 means that a magnetic field does not exist, and a value greater than 0 means the opposite.

MagneticFieldResponse

Describes the magnetic field sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
x number No No Magnetic field strength on the x-axis, in μT.
y number No No Magnetic field strength on the y-axis, in μT.
z number No No Magnetic field strength on the z-axis, in μT.

MagneticFieldUncalibratedResponse

Describes the uncalibrated magnetic field sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
x number No No Uncalibrated magnetic field strength on the x-axis, in μT.
y number No No Uncalibrated magnetic field strength on the y-axis, in μT.
z number No No Uncalibrated magnetic field strength on the z-axis, in μT.
biasX number No No Bias of the uncalibrated magnetic field strength on the x-axis, in μT.
biasY number No No Bias of the uncalibrated magnetic field strength on the y-axis, in μT.
biasZ number No No Bias of the uncalibrated magnetic field strength on the z-axis, in μT.

PedometerResponse

Describes the pedometer sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
steps number No No Number of steps a user has walked.

HumidityResponse

Describes the humidity sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
humidity number No No Ambient relative humidity, in a percentage (%).

PedometerDetectionResponse

Describes the pedometer detection sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
scalar number No No Pedometer detection. This parameter specifies whether a user takes a step. The value 0 means that the user does not take a step, and 1 means that the user takes a step.

AmbientTemperatureResponse

Describes the ambient temperature sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
temperature number No No Ambient temperature, in degree Celsius.

BarometerResponse

Describes the barometer sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
pressure number No No Atmospheric pressure, in units of hPa.

HeartRateResponse

Describes the heart rate sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
heartRate number No No Heart rate, in beats per minute (bpm).

WearDetectionResponse

Describes the wear detection sensor data. It extends from Response.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
value number No No Whether the device is being worn. The value 1 means that the device is being worn, and 0 means the opposite.

Options

Describes the sensor data reporting frequency.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
interval number|SensorFrequency11+ No Yes Frequency at which a sensor reports data. The default value is 200,000,000 ns. The maximum and minimum values of this parameter are determined by the reporting frequency supported by the hardware. If the configured frequency is greater than the maximum value, the maximum value is used for data reporting. If the configured frequency is less than the minimum value, the minimum value is used for data reporting.
sensorInfoParam19+ SensorInfoParam No Yes Sensor parameters, including deviceId and sensorIndex.
Atomic service API: This API can be used in atomic services since API version 19.

SensorFrequency11+

type SensorFrequency = 'game' | 'ui' | 'normal'

Defines the reporting frequency mode of the sensor.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Sensors.Sensor

Type Description
'game' Game mode, which specifies a sensor data reporting frequency of 20,000,000 ns. This parameter takes effect only when the frequency is within the frequency range supported by the hardware.
'ui' UI mode, which specifies a sensor data reporting frequency of 60,000,000 ns. This parameter takes effect only when the frequency is within the frequency range supported by the hardware.
'normal' Normal mode, which specifies a sensor data reporting frequency of 200,000,000 ns. This parameter takes effect only when the frequency is within the frequency range supported by the hardware.

RotationMatrixResponse

Describes the response for setting the rotation matrix.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
rotation Array<number> No No Rotation matrix.
inclination Array<number> No No Inclination matrix.

CoordinatesOptions

Describes the coordinate options.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
x number No No X coordinate direction.
y number No No Y coordinate direction.

GeomagneticResponse

Describes a geomagnetic response object.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
x number No No North component of the geomagnetic field, in nT.
y number No No East component of the geomagnetic field, in nT.
z number No No Vertical component of the geomagnetic field, in nT.
geomagneticDip number No No Magnetic dip, also called magnetic inclination, which is the angle measured from the horizontal plane to the magnetic field vector, in degrees (°).
deflectionAngle number No No Magnetic declination, which is the angle between true north (geographic north) and the magnetic north (the horizontal component of the field), in degrees (°).
levelIntensity number No No Horizontal intensity of the geomagnetic field, in nT.
totalIntensity number No No Total intensity of the geomagnetic field, in nT.

LocationOptions

Describes the geographical location.

System capability: SystemCapability.Sensors.Sensor

Name Type Read-Only Optional Description
latitude number No No Latitude, in degrees (°).
longitude number No No Longitude, in degrees (°).
altitude number No No Altitude, in meters.

sensor.on('SensorType.SENSOR_TYPE_ID_ACCELEROMETER')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_ACCELEROMETER, callback: Callback<AccelerometerResponse>,options?: Options): void

Subscribes to data changes of the acceleration sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.ACCELEROMETER instead.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_ACCELEROMETER Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_ACCELEROMETER.
callback Callback<AccelerometerResponse> Yes Callback used to return the acceleration sensor data. The reported data type in the callback is AccelerometerResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_ACCELEROMETER, (data: sensor.AccelerometerResponse) => {
  console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION,callback:Callback<LinearAccelerometerResponse>, options?: Options): void

Subscribes to data changes of the linear acceleration sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.LINEAR_ACCELEROMETER instead.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_LINEAR_ACCELERATION.
callback Callback<LinearAccelerometerResponse> Yes Callback used to return the linear acceleration sensor data. The reported data type in the callback is LinearAccelerometerResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

sensor.on('SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED,callback: Callback<AccelerometerUncalibratedResponse>, options?: Options): void

Subscribes to data changes of the uncalibrated acceleration sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.ACCELEROMETER_UNCALIBRATED9+ instead.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED.
callback Callback<AccelerometerUncalibratedResponse> Yes Callback used to return the uncalibrated acceleration sensor data. The reported data type in the callback is AccelerometerUncalibratedResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED, (data: sensor.AccelerometerUncalibratedResponse) => {
  console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
  console.info('Succeeded in invoking on. X-coordinate bias: ' + data.biasX);
  console.info('Succeeded in invoking on. Y-coordinate bias: ' + data.biasY);
  console.info('Succeeded in invoking on. Z-coordinate bias: ' + data.biasZ);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_GRAVITY')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_GRAVITY, callback: Callback<GravityResponse>,options?: Options): void

Subscribes to data changes of the gravity sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.GRAVITY instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_GRAVITY Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_GRAVITY.
callback Callback<GravityResponse> Yes Callback used to return the gravity sensor data. The reported data type in the callback is GravityResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_GRAVITY, (data: sensor.GravityResponse) => {
  console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_GYROSCOPE')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_GYROSCOPE, callback: Callback<GyroscopeResponse>, options?: Options): void

Subscribes to data changes of the gyroscope sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.GYROSCOPE instead.

Required permissions: ohos.permission.GYROSCOPE

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_GYROSCOPE Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_GYROSCOPE.
callback Callback<GyroscopeResponse> Yes Callback used to return the gyroscope sensor data. The reported data type in the callback is GyroscopeResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_GYROSCOPE, (data: sensor.GyroscopeResponse) => {
  console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED,callback:Callback<GyroscopeUncalibratedResponse>, options?: Options): void

Subscribes to data changes of the uncalibrated gyroscope sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.GYROSCOPE_UNCALIBRATED instead.

Required permissions: ohos.permission.GYROSCOPE

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED.
callback Callback<GyroscopeUncalibratedResponse> Yes Callback used to return the uncalibrated gyroscope sensor data. The reported data type in the callback is GyroscopeUncalibratedResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED, (data: sensor.GyroscopeUncalibratedResponse) => {
  console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
  console.info('Succeeded in invoking on. X-coordinate bias: ' + data.biasX);
  console.info('Succeeded in invoking on. Y-coordinate bias: ' + data.biasY);
  console.info('Succeeded in invoking on. Z-coordinate bias: ' + data.biasZ);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_SIGNIFICANT_MOTION')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_SIGNIFICANT_MOTION, callback: Callback<SignificantMotionResponse>, options?: Options): void

Subscribes to data changes of the significant motion sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.SIGNIFICANT_MOTION instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_SIGNIFICANT_MOTION Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_SIGNIFICANT_MOTION.
callback Callback<SignificantMotionResponse> Yes Callback used to return the significant motion sensor data. The reported data type in the callback is SignificantMotionResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_SIGNIFICANT_MOTION, (data: sensor.SignificantMotionResponse) => {
  console.info('Succeeded in invoking on. Scalar data: ' + data.scalar);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION, callback: Callback<PedometerDetectionResponse>, options?: Options): void

Subscribes to data changes of the pedometer detection sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.PEDOMETER_DETECTION instead.

Required permissions: ohos.permission.ACTIVITY_MOTION

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_PEDOMETER_DETECTION.
callback Callback<PedometerDetectionResponse> Yes Callback used to return the pedometer detection sensor data. The reported data type in the callback is PedometerDetectionResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION, (data: sensor.PedometerDetectionResponse) => {
  console.info('Succeeded in invoking on. Scalar data: ' + data.scalar);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_PEDOMETER')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_PEDOMETER, callback: Callback<PedometerResponse>, options?: Options): void

Subscribes to data changes of the pedometer sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.PEDOMETER instead.

Required permissions: ohos.permission.ACTIVITY_MOTION

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_PEDOMETER Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_PEDOMETER.
callback Callback<PedometerResponse> Yes Callback used to return the pedometer sensor data. The reported data type in the callback is PedometerResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_PEDOMETER, (data: sensor.PedometerResponse) => {
  console.info('Succeeded in invoking on. Steps: ' + data.steps);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE, callback:Callback<AmbientTemperatureResponse>, options?: Options): void

Subscribes to data changes of the ambient temperature sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.AMBIENT_TEMPERATURE instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_AMBIENT_TEMPERATURE.
callback Callback<AmbientTemperatureResponse> Yes Callback used to return the ambient temperature sensor data. The reported data type in the callback is AmbientTemperatureResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE, (data: sensor.AmbientTemperatureResponse) => {
  console.info('Succeeded in invoking on. Temperature: ' + data.temperature);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD, callback: Callback<MagneticFieldResponse>,options?: Options): void

Subscribes to data changes of the magnetic field sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.MAGNETIC_FIELD instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_MAGNETIC_FIELD.
callback Callback<MagneticFieldResponse> Yes Callback used to return the magnetic field sensor data. The reported data type in the callback is MagneticFieldResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD, (data: sensor.MagneticFieldResponse) => {
  console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED, callback: Callback<MagneticFieldUncalibratedResponse>, options?: Options): void

Subscribes to data changes of the uncalibrated magnetic field sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.MAGNETIC_FIELD_UNCALIBRATED instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED.
callback Callback<MagneticFieldUncalibratedResponse> Yes Callback used to return the uncalibrated magnetic field sensor data. The reported data type in the callback is MagneticFieldUncalibratedResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED, (data: sensor.MagneticFieldUncalibratedResponse) => {
  console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
  console.info('Succeeded in invoking on. X-coordinate bias: ' + data.biasX);
  console.info('Succeeded in invoking on. Y-coordinate bias: ' + data.biasY);
  console.info('Succeeded in invoking on. Z-coordinate bias: ' + data.biasZ);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_PROXIMITY')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_PROXIMITY, callback: Callback<ProximityResponse>,options?: Options): void

Subscribes to data changes of the proximity sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.PROXIMITY instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_PROXIMITY Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_PROXIMITY.
callback Callback<ProximityResponse> Yes Callback used to return the proximity sensor data. The reported data type in the callback is ProximityResponse.
options Options No List of optional parameters. The default value is 200,000,000 ns. This parameter is used to set the data reporting frequency when proximity sensor events are frequently triggered.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_PROXIMITY, (data: sensor.ProximityResponse) => {
  console.info('Succeeded in invoking on. Distance: ' + data.distance);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_HUMIDITY')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_HUMIDITY, callback: Callback<HumidityResponse>,options?: Options): void

Subscribes to data changes of the humidity sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.HUMIDITY instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_HUMIDITY Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_HUMIDITY.
callback Callback<HumidityResponse> Yes Callback used to return the humidity sensor data. The reported data type in the callback is HumidityResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_HUMIDITY, (data: sensor.HumidityResponse) => {
  console.info('Succeeded in invoking on. Humidity: ' + data.humidity);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_BAROMETER')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_BAROMETER, callback: Callback<BarometerResponse>,options?: Options): void

Subscribes to data changes of the barometer sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.BAROMETER instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_BAROMETER Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_BAROMETER.
callback Callback<BarometerResponse> Yes Callback used to return the barometer sensor data. The reported data type in the callback is BarometerResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_BAROMETER, (data: sensor.BarometerResponse) => {
  console.info('Succeeded in invoking on. Atmospheric pressure: ' + data.pressure);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_HALL')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_HALL, callback: Callback<HallResponse>, options?: Options): void

Subscribes to data changes of the Hall effect sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.HALL instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_HALL Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_HALL.
callback Callback<HallResponse> Yes Callback used to return the Hall effect sensor data. The reported data type in the callback is HallResponse.
options Options No List of optional parameters. The default value is 200,000,000 ns. This parameter is used to set the data reporting frequency when Hall effect events are frequently triggered.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_HALL, (data: sensor.HallResponse) => {
  console.info('Succeeded in invoking on. Status: ' + data.status);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_AMBIENT_LIGHT')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_AMBIENT_LIGHT, callback: Callback<LightResponse>, options?: Options): void

Subscribes to data changes of the ambient light sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.AMBIENT_LIGHT instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_AMBIENT_LIGHT Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_AMBIENT_LIGHT.
callback Callback<LightResponse> Yes Callback used to return the ambient light sensor data. The reported data type in the callback is LightResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_AMBIENT_LIGHT, (data: sensor.LightResponse) => {
  console.info('Succeeded in invoking on. Illumination: ' + data.intensity);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_ORIENTATION')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_ORIENTATION, callback: Callback<OrientationResponse>, options?: Options): void

Subscribes to data changes of the orientation sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.ORIENTATION instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_ORIENTATION Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_ORIENTATION.
callback Callback<OrientationResponse> Yes Callback used to return the orientation sensor data. The reported data type in the callback is OrientationResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_ORIENTATION, (data: sensor.OrientationResponse) => {
  console.info('Succeeded in the device rotating at an angle around the X axis: ' + data.beta);
  console.info('Succeeded in the device rotating at an angle around the Y axis: ' + data.gamma);
  console.info('Succeeded in the device rotating at an angle around the Z axis: ' + data.alpha);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_HEART_RATE')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_HEART_RATE, callback: Callback<HeartRateResponse>, options?: Options): void

Subscribes to data changes of the heart rate sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.HEART_RATE instead.

Required permissions: ohos.permission.HEALTH_DATA

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_HEART_RATE Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_HEART_RATE.
callback Callback<HeartRateResponse> Yes Callback used to return the heart rate sensor data. The reported data type in the callback is HeartRateResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

sensor.on('SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR, callback: Callback<RotationVectorResponse>,options?: Options): void

Subscribes to data changes of the rotation vector sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.ROTATION_VECTOR instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_ROTATION_VECTOR.
callback Callback<RotationVectorResponse> Yes Callback used to return the rotation vector sensor data. The reported data type in the callback is RotationVectorResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR, (data: sensor.RotationVectorResponse) => {
  console.info('Succeeded in invoking on. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking on. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking on. Z-coordinate component: ' + data.z);
  console.info('Succeeded in invoking on. Scalar quantity: ' + data.w);
},
  { interval: 100000000 }
);

sensor.on('SensorType.SENSOR_TYPE_ID_WEAR_DETECTION')(deprecated)

on(type: SensorType.SENSOR_TYPE_ID_WEAR_DETECTION, callback: Callback<WearDetectionResponse>,options?: Options): void

Subscribes to data changes of the wear detection sensor. If this API is called multiple times for the same application, the last call takes effect.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.on.WEAR_DETECTION instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_WEAR_DETECTION Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_WEAR_DETECTION.
callback Callback<WearDetectionResponse> Yes Callback used to return the wear detection sensor data. The reported data type in the callback is WearDetectionResponse.
options Options No List of optional parameters. This parameter is used to set the data reporting frequency. The default value is 200,000,000 ns.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.on(sensor.SensorType.SENSOR_TYPE_ID_WEAR_DETECTION, (data: sensor.WearDetectionResponse) => {
  console.info('Succeeded in invoking on. Wear status: ' + data.value);
},
  { interval: 100000000 }
);

sensor.once('SensorType.SENSOR_TYPE_ID_ACCELEROMETER')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_ACCELEROMETER, callback: Callback<AccelerometerResponse>): void

Subscribes to only one data change of the acceleration sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.ACCELEROMETER instead.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_ACCELEROMETER Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_ACCELEROMETER.
callback Callback<AccelerometerResponse> Yes One-shot callback used to return the acceleration sensor data. The reported data type in the callback is AccelerometerResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_ACCELEROMETER, (data: sensor.AccelerometerResponse) => {
  console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
});

sensor.once('SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION, callback:Callback<LinearAccelerometerResponse>): void

Subscribes to only one data change of the linear acceleration sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.LINEAR_ACCELEROMETER instead.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_LINEAR_ACCELERATION.
callback Callback<LinearAccelerometerResponse> Yes One-shot callback used to return the linear acceleration sensor data. The reported data type in the callback is LinearAccelerometerResponse.

sensor.once('SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED,callback: Callback<AccelerometerUncalibratedResponse>): void

Subscribes to only one data change of the uncalibrated acceleration sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.ACCELEROMETER_UNCALIBRATED instead.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED.
callback Callback<AccelerometerUncalibratedResponse> Yes One-shot callback used to return the uncalibrated acceleration sensor data. The reported data type in the callback is AccelerometerUncalibratedResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED, (data: sensor.AccelerometerUncalibratedResponse) => {
  console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
  console.info('Succeeded in invoking once. X-coordinate bias: ' + data.biasX);
  console.info('Succeeded in invoking once. Y-coordinate bias: ' + data.biasY);
  console.info('Succeeded in invoking once. Z-coordinate bias: ' + data.biasZ);
});

sensor.once('SensorType.SENSOR_TYPE_ID_GRAVITY')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_GRAVITY, callback: Callback<GravityResponse>): void

Subscribes to only one data change of the gravity sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.GRAVITY instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_GRAVITY Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_GRAVITY.
callback Callback<GravityResponse> Yes One-shot callback used to return the gravity sensor data. The reported data type in the callback is GravityResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_GRAVITY, (data: sensor.GravityResponse) => {
  console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
  });

sensor.once('SensorType.SENSOR_TYPE_ID_GYROSCOPE')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_GYROSCOPE, callback: Callback<GyroscopeResponse>): void

Subscribes to only one data change of the gyroscope sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.GYROSCOPE instead.

Required permissions: ohos.permission.GYROSCOPE

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_GYROSCOPE Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_GYROSCOPE.
callback Callback<GyroscopeResponse> Yes One-shot callback used to return the gyroscope sensor data. The reported data type in the callback is GyroscopeResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_GYROSCOPE, (data: sensor.GyroscopeResponse) => {
  console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
});

sensor.once('SensorType.SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED,callback: Callback<GyroscopeUncalibratedResponse>): void

Subscribes to only one data change of the uncalibrated gyroscope sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.GYROSCOPE_UNCALIBRATED> instead.

Required permissions: ohos.permission.GYROSCOPE

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED.
callback Callback<GyroscopeUncalibratedResponse> Yes One-shot callback used to return the uncalibrated gyroscope sensor data. The reported data type in the callback is GyroscopeUncalibratedResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED, (data: sensor.GyroscopeUncalibratedResponse) => {
    console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
    console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
    console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
    console.info('Succeeded in invoking once. X-coordinate bias: ' + data.biasX);
    console.info('Succeeded in invoking once. Y-coordinate bias: ' + data.biasY);
    console.info('Succeeded in invoking once. Z-coordinate bias: ' + data.biasZ);
});

sensor.once('SensorType.SENSOR_TYPE_ID_SIGNIFICANT_MOTION')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_SIGNIFICANT_MOTION, callback: Callback<SignificantMotionResponse>): void

Subscribes to only one data change of the significant motion sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.SIGNIFICANT_MOTION instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_SIGNIFICANT_MOTION Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_SIGNIFICANT_MOTION.
callback Callback<SignificantMotionResponse> Yes One-shot callback used to return the significant motion sensor data. The reported data type in the callback is SignificantMotionResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_SIGNIFICANT_MOTION, (data: sensor.SignificantMotionResponse) => {
  console.info('Succeeded in invoking once. Scalar data: ' + data.scalar);
});

sensor.once('SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION, callback: Callback<PedometerDetectionResponse>): void

Subscribes to only one data change of the pedometer detection sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.PEDOMETER_DETECTION instead.

Required permissions: ohos.permission.ACTIVITY_MOTION

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_PEDOMETER_DETECTION.
callback Callback<PedometerDetectionResponse> Yes One-shot callback used to return the pedometer detection sensor data. The reported data type in the callback is PedometerDetectionResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION, (data: sensor.PedometerDetectionResponse) => {
  console.info('Succeeded in invoking once. Scalar data: ' + data.scalar);
});

sensor.once('SensorType.SENSOR_TYPE_ID_PEDOMETER')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_PEDOMETER, callback: Callback<PedometerResponse>): void

Subscribes to only one data change of the pedometer sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.PEDOMETER instead.

Required permissions: ohos.permission.ACTIVITY_MOTION

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_PEDOMETER Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_PEDOMETER.
callback Callback<PedometerResponse> Yes One-shot callback used to return the pedometer sensor data. The reported data type in the callback is PedometerResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_PEDOMETER, (data: sensor.PedometerResponse) => {
  console.info('Succeeded in invoking once. Steps: ' + data.steps);
});

sensor.once('SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE, callback: Callback<AmbientTemperatureResponse>): void

Subscribes to only one data change of the ambient temperature sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.AMBIENT_TEMPERATURE instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_AMBIENT_TEMPERATURE.
callback Callback<AmbientTemperatureResponse> Yes One-shot callback used to return the ambient temperature sensor data. The reported data type in the callback is AmbientTemperatureResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE, (data: sensor.AmbientTemperatureResponse) => {
  console.info('Succeeded in invoking once. Temperature: ' + data.temperature);
});

sensor.once('SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD, callback: Callback<MagneticFieldResponse>): void

Subscribes to only one data change of the magnetic field sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.MAGNETIC_FIELD instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_MAGNETIC_FIELD.
callback Callback<MagneticFieldResponse> Yes One-shot callback used to return the magnetic field sensor data. The reported data type in the callback is MagneticFieldResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD, (data: sensor.MagneticFieldResponse) => {
  console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
});

sensor.once('SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED, callback: Callback<MagneticFieldUncalibratedResponse>): void

Subscribes to only one data change of the uncalibrated magnetic field sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.MAGNETIC_FIELD_UNCALIBRATED instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED.
callback Callback<MagneticFieldUncalibratedResponse> Yes One-shot callback used to return the uncalibrated magnetic field sensor data. The reported data type in the callback is MagneticFieldUncalibratedResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED, (data: sensor.MagneticFieldUncalibratedResponse) => {
  console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
  console.info('Succeeded in invoking once. X-coordinate bias: ' + data.biasX);
  console.info('Succeeded in invoking once. Y-coordinate bias: ' + data.biasY);
  console.info('Succeeded in invoking once. Z-coordinate bias: ' + data.biasZ);
});

sensor.once('SensorType.SENSOR_TYPE_ID_PROXIMITY')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_PROXIMITY, callback: Callback<ProximityResponse>): void

Subscribes to only one data change of the proximity sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.PROXIMITY instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_PROXIMITY Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_PROXIMITY.
callback Callback<ProximityResponse> Yes One-shot callback used to return the proximity sensor data. The reported data type in the callback is ProximityResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_PROXIMITY, (data: sensor.ProximityResponse) => {
  console.info('Succeeded in invoking once. Distance: ' + data.distance);
}
);

sensor.once('SensorType.SENSOR_TYPE_ID_HUMIDITY')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_HUMIDITY, callback: Callback<HumidityResponse>): void

Subscribes to only one data change of the humidity sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.HUMIDITY instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_HUMIDITY Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_HUMIDITY.
callback Callback<HumidityResponse> Yes One-shot callback used to return the humidity sensor data. The reported data type in the callback is HumidityResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_HUMIDITY, (data: sensor.HumidityResponse) => {
  console.info('Succeeded in invoking once. Humidity: ' + data.humidity);
});

sensor.once('type: SensorType.SENSOR_TYPE_ID_BAROMETER')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_BAROMETER, callback: Callback<BarometerResponse>): void

Subscribes to only one data change of the barometer sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.BAROMETER instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_BAROMETER Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_BAROMETER.
callback Callback<BarometerResponse> Yes One-shot callback used to return the barometer sensor data. The reported data type in the callback is BarometerResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_BAROMETER, (data: sensor.BarometerResponse) => {
  console.info('Succeeded in invoking once. Atmospheric pressure: ' + data.pressure);
});

sensor.once('SensorType.SENSOR_TYPE_ID_HALL')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_HALL, callback: Callback<HallResponse>): void

Subscribes to only one data change of the Hall effect sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.HALL instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_HALL Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_HALL.
callback Callback<HallResponse> Yes One-shot callback used to return the Hall effect sensor data. The reported data type in the callback is HallResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_HALL, (data: sensor.HallResponse) => {
  console.info('Succeeded in invoking once. Status: ' + data.status);
});

sensor.once('SensorType.SENSOR_TYPE_ID_AMBIENT_LIGHT')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_AMBIENT_LIGHT, callback: Callback<LightResponse>): void

Subscribes to only one data change of the ambient light sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.AMBIENT_LIGHT instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_AMBIENT_LIGHT Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_AMBIENT_LIGHT.
callback Callback<LightResponse> Yes One-shot callback used to return the ambient light sensor data. The reported data type in the callback is LightResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_AMBIENT_LIGHT, (data: sensor.LightResponse) => {
  console.info('Succeeded in invoking once. invoking once. Illumination: ' + data.intensity);
});

sensor.once('SensorType.SENSOR_TYPE_ID_ORIENTATION')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_ORIENTATION, callback: Callback<OrientationResponse>): void

Subscribes to only one data change of the orientation sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.ORIENTATION instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_ORIENTATION Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_ORIENTATION.
callback Callback<OrientationResponse> Yes One-shot callback used to return the orientation sensor data. The reported data type in the callback is OrientationResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_ORIENTATION, (data: sensor.OrientationResponse) => {
  console.info('Succeeded in invoking the device rotating at an angle around the X axis: ' + data.beta);
  console.info('Succeeded in invoking the device rotating at an angle around the Y axis: ' + data.gamma);
  console.info('Succeeded in invoking the device rotating at an angle around the Z axis: ' + data.alpha);
});

sensor.once('SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR, callback: Callback<RotationVectorResponse>): void

Subscribes to only one data change of the rotation vector sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.ROTATION_VECTOR instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_ROTATION_VECTOR.
callback Callback<RotationVectorResponse> Yes One-shot callback used to return the rotation vector sensor data. The reported data type in the callback is RotationVectorResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR, (data: sensor.RotationVectorResponse) => {
  console.info('Succeeded in invoking once. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking once. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking once. Z-coordinate component: ' + data.z);
  console.info('Succeeded in invoking once. Scalar quantity: ' + data.w);
});

sensor.once('SensorType.SENSOR_TYPE_ID_HEART_RATE')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_HEART_RATE, callback: Callback<HeartRateResponse>): void

Subscribes to only one data change of the heart rate sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.HEART_RATE instead.

Required permissions: ohos.permission.HEART_RATE

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_HEART_RATE Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_HEART_RATE.
callback Callback<HeartRateResponse> Yes One-shot callback used to return the heart rate sensor data. The reported data type in the callback is HeartRateResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_HEART_RATE, (data: sensor.HeartRateResponse) => {
  console.info("Succeeded in invoking once. Heart rate: " + data.heartRate);
});

sensor.once('SensorType.SENSOR_TYPE_ID_WEAR_DETECTION')(deprecated)

once(type: SensorType.SENSOR_TYPE_ID_WEAR_DETECTION, callback: Callback<WearDetectionResponse>): void

Subscribes to only one data change of the wear detection sensor.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.once.WEAR_DETECTION instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_WEAR_DETECTION Yes Type of the sensor to subscribe to, which is SENSOR_TYPE_ID_WEAR_DETECTION.
callback Callback<WearDetectionResponse> Yes One-shot callback used to return the wear detection sensor data. The reported data type in the callback is WearDetectionResponse.

Example

import { sensor } from '@kit.SensorServiceKit';

sensor.once(sensor.SensorType.SENSOR_TYPE_ID_WEAR_DETECTION, (data: sensor.WearDetectionResponse) => {
  console.info("Succeeded in invoking once. Wear status: " + data.value);
});

sensor.off('SensorType.SENSOR_TYPE_ID_ACCELEROMETER')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_ACCELEROMETER, callback?: Callback<AccelerometerResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.ACCELEROMETER instead.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_ACCELEROMETER Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_ACCELEROMETER.
callback Callback<AccelerometerResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.AccelerometerResponse) {
  console.info('Succeeded in invoking off. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking off. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking off. Z-coordinate component: ' + data.z);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_ACCELEROMETER, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED, callback?: Callback<AccelerometerUncalibratedResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.ACCELEROMETER_UNCALIBRATED instead.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED.
callback Callback<AccelerometerUncalibratedResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.AccelerometerUncalibratedResponse) {
  console.info('Succeeded in invoking off. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking off. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking off. Z-coordinate component: ' + data.z);
  console.info('Succeeded in invoking off. X-coordinate bias: ' + data.biasX);
  console.info('Succeeded in invoking off. Y-coordinate bias: ' + data.biasY);
  console.info('Succeeded in invoking off. Z-coordinate bias: ' + data.biasZ);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_AMBIENT_LIGHT')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_AMBIENT_LIGHT, callback?: Callback<LightResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.AMBIENT_LIGHT instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_AMBIENT_LIGHT Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_AMBIENT_LIGHT.
callback Callback<LightResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.LightResponse) {
  console.info('Succeeded in invoking off. Illumination: ' + data.intensity);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_AMBIENT_LIGHT, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE, callback?: Callback<AmbientTemperatureResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.AMBIENT_TEMPERATURE instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_AMBIENT_TEMPERATURE.
callback Callback<AmbientTemperatureResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.AmbientTemperatureResponse) {
  console.info('Succeeded in invoking off. Temperature: ' + data.temperature);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_BAROMETER')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_BAROMETER, callback?: Callback<BarometerResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.BAROMETER instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_BAROMETER Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_BAROMETER.
callback Callback<BarometerResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.BarometerResponse) {
  console.info('Succeeded in invoking off. Atmospheric pressure: ' + data.pressure);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_BAROMETER, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_GRAVITY')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_GRAVITY, callback?: Callback<GravityResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.GRAVITY instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_GRAVITY Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_GRAVITY.
callback Callback<GravityResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.GravityResponse) {
  console.info('Succeeded in invoking off. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking off. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking off. Z-coordinate component: ' + data.z);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_GRAVITY, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_GYROSCOPE')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_GYROSCOPE, callback?: Callback<GyroscopeResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.GYROSCOPE instead.

Required permissions: ohos.permission.GYROSCOPE

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_GYROSCOPE Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_GYROSCOPE.
callback Callback<GyroscopeResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.GyroscopeResponse) {
  console.info('Succeeded in invoking off. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking off. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking off. Z-coordinate component: ' + data.z);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_GYROSCOPE, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED, callback?: Callback<GyroscopeUncalibratedResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.GYROSCOPE_UNCALIBRATED instead.

Required permissions: ohos.permission.GYROSCOPE

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED.
callback Callback<GyroscopeUncalibratedResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.GyroscopeUncalibratedResponse) {
  console.info('Succeeded in invoking off. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking off. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking off. Z-coordinate component: ' + data.z);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_HALL')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_HALL, callback?: Callback<HallResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.HALL instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_HALL Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_HALL.
callback Callback<HallResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.HallResponse) {
  console.info('Succeeded in invoking off. Status: ' + data.status);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_HALL, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_HEART_RATE')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_HEART_RATE, callback?: Callback<HeartRateResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.HEART_RATE instead.

Required permissions: ohos.permission.HEALTH_DATA

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_HEART_RATE Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_HEART_RATE.
callback Callback<HeartRateResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.HeartRateResponse) {
  console.info('Succeeded in invoking off. Heart rate: ' + data.heartRate);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_HEART_RATE, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_HUMIDITY')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_HUMIDITY, callback?: Callback<HumidityResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.HUMIDITY instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_HUMIDITY Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_HUMIDITY.
callback Callback<HumidityResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.HumidityResponse) {
  console.info('Succeeded in invoking off. Humidity: ' + data.humidity);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_HUMIDITY, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION, callback?: Callback<LinearAccelerometerResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.LINEAR_ACCELEROMETER instead.

Required permissions: ohos.permission.ACCELEROMETER

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_LINEAR_ACCELERATION.
callback Callback<LinearAccelerometerResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.LinearAccelerometerResponse) {
  console.info('Succeeded in invoking off. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking off. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking off. Z-coordinate component: ' + data.z);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD, callback?: Callback<MagneticFieldResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.MAGNETIC_FIELD instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_MAGNETIC_FIELD.
callback Callback<MagneticFieldResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.MagneticFieldResponse) {
  console.info('Succeeded in invoking off. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking off. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking off. Z-coordinate component: ' + data.z);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED, callback?: Callback<MagneticFieldUncalibratedResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.MAGNETIC_FIELD_UNCALIBRATED instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED.
callback Callback<MagneticFieldUncalibratedResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.MagneticFieldUncalibratedResponse) {
  console.info('Succeeded in invoking off. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking off. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking off. Z-coordinate component: ' + data.z);
  console.info('Succeeded in invoking off. X-coordinate bias: ' + data.biasX);
  console.info('Succeeded in invoking off. Y-coordinate bias: ' + data.biasY);
  console.info('Succeeded in invoking off. Z-coordinate bias: ' + data.biasZ);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_ORIENTATION')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_ORIENTATION, callback?: Callback<OrientationResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.ORIENTATION instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_ORIENTATION Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_ORIENTATION.
callback Callback<OrientationResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.OrientationResponse) {
  console.info('Succeeded in invoking off. The device rotates at an angle around the X axis: ' + data.beta);
  console.info('Succeeded in invoking off. The device rotates at an angle around the Y axis: ' + data.gamma);
  console.info('Succeeded in invoking off. The device rotates at an angle around the Z axis: ' + data.alpha);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_ORIENTATION, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_PEDOMETER')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_PEDOMETER, callback?: Callback<PedometerResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.PEDOMETER instead.

Required permissions: ohos.permission.ACTIVITY_MOTION

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_PEDOMETER Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_PEDOMETER.
callback Callback<PedometerResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.PedometerResponse) {
  console.info('Succeeded in invoking off. Steps: ' + data.steps);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_PEDOMETER, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION, callback?: Callback<PedometerDetectionResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.PEDOMETER_DETECTION instead.

Required permissions: ohos.permission.ACTIVITY_MOTION

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_PEDOMETER_DETECTION.
callback Callback<PedometerDetectionResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.PedometerDetectionResponse) {
  console.info('Succeeded in invoking off. Scalar data: ' + data.scalar);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_PROXIMITY')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_PROXIMITY, callback?: Callback<ProximityResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.PROXIMITY instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_PROXIMITY Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_PROXIMITY.
callback Callback<ProximityResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.ProximityResponse) {
  console.info('Succeeded in invoking off. Distance: ' + data.distance);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_PROXIMITY, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR, callback?: Callback<RotationVectorResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.ROTATION_VECTOR instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_ROTATION_VECTOR.
callback Callback<RotationVectorResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.RotationVectorResponse) {
  console.info('Succeeded in invoking off. X-coordinate component: ' + data.x);
  console.info('Succeeded in invoking off. Y-coordinate component: ' + data.y);
  console.info('Succeeded in invoking off. Z-coordinate component: ' + data.z);
  console.info('Succeeded in invoking off. Scalar quantity: ' + data.w);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_SIGNIFICANT_MOTION')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_SIGNIFICANT_MOTION, callback?: Callback<SignificantMotionResponse>): void

Unsubscribes from valid motion sensor data.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.SIGNIFICANT_MOTION instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_SIGNIFICANT_MOTION Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_SIGNIFICANT_MOTION.
callback Callback<SignificantMotionResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function callback(data: sensor.SignificantMotionResponse) {
  console.info('Succeeded in invoking off. Scalar data: ' + data.scalar);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_SIGNIFICANT_MOTION, callback);

sensor.off('SensorType.SENSOR_TYPE_ID_WEAR_DETECTION')(deprecated)

off(type: SensorType.SENSOR_TYPE_ID_WEAR_DETECTION, callback?: Callback<WearDetectionResponse>): void

Unsubscribes from sensor data changes.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.off.WEAR_DETECTION instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
type SensorType.SENSOR_TYPE_ID_WEAR_DETECTION Yes Type of the sensor to unsubscribe from, which is SENSOR_TYPE_ID_WEAR_DETECTION.
callback Callback<WearDetectionResponse> No Callback used for unsubscription. If this parameter is not specified, all callbacks of the specified sensor type are unsubscribed from.

Example

import { sensor } from '@kit.SensorServiceKit';

function accCallback(data: sensor.WearDetectionResponse) {
  console.info('Succeeded in invoking off. Wear status: ' + data.value);
}

sensor.off(sensor.SensorType.SENSOR_TYPE_ID_WEAR_DETECTION, accCallback);

sensor.transformCoordinateSystem(deprecated)

transformCoordinateSystem(inRotationVector: Array<number>, coordinates: CoordinatesOptions, callback: AsyncCallback<Array<number>>): void

Rotates a rotation vector so that it can represent the coordinate system in different ways. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.transformRotationMatrix instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
inRotationVector Array<number> Yes Rotation vector.
coordinates CoordinatesOptions Yes Direction of the coordinate system.
callback AsyncCallback<Array<number>> Yes Callback used to return the rotation vector after being rotated.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

sensor.transformCoordinateSystem([1, 0, 0, 0, 1, 0, 0, 0, 1], { x: 2, y: 3 }, 
                                 (err: BusinessError, data: Array<number>) => {
  if (err) {
    console.error(`Failed to operate. Code: ${err.code}, message: ${err.message}`);
    return;
  }
  console.info("Succeeded in starting Operation. Data obtained: " + data);
  for (let i = 0; i < data.length; i++) {
    console.info("Succeeded in getting transformCoordinateSystem data[ " + i + "] = " + data[i]);
  }
})

sensor.transformCoordinateSystem(deprecated)

transformCoordinateSystem(inRotationVector: Array<number>, coordinates: CoordinatesOptions): Promise<Array<number>>

Rotates a rotation vector so that it can represent the coordinate system in different ways. This API uses a promise to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.transformRotationMatrix instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
inRotationVector Array<number> Yes Rotation vector.
coordinates CoordinatesOptions Yes Direction of the coordinate system.

Return value

Type Description
Promise<Array<number>> Promise used to return the rotation vector after being rotated.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

const promise = sensor.transformCoordinateSystem([1, 0, 0, 0, 1, 0, 0, 0, 1], { x: 2, y: 3 });
promise.then((data: Array<number>) => {
  console.info("Succeeded in starting Operation");
  for (let i = 0; i < data.length; i++) {
    console.info("Succeeded in getting transformCoordinateSystem data[ " + i + "] = " + data[i]);
  }
}).catch((err: BusinessError) => {
  console.error(`Failed to operate.`);
})

sensor.getGeomagneticField(deprecated)

getGeomagneticField(locationOptions: LocationOptions, timeMillis: number, callback: AsyncCallback<GeomagneticResponse>): void

Obtains the geomagnetic field of a geographic location. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getGeomagneticInfo instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
locationOptions LocationOptions Yes Geographic location.
timeMillis number Yes Time for obtaining the magnetic declination, in milliseconds.
callback AsyncCallback<GeomagneticResponse> Yes Callback used to return the geomagnetic field.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

sensor.getGeomagneticField({ latitude: 80, longitude: 0, altitude: 0 }, 1580486400000, 
                           (err: BusinessError, data: sensor.GeomagneticResponse) => {
  if (err) {
    console.error(`Failed to operate. Code: ${err.code}, message: ${err.message}`);
    return;
  }
  console.info('Succeeded in getting sensor_getGeomagneticField_callback x: ' + data.x + ',y: ' + data.y + ',z: ' +
  data.z + ',geomagneticDip: ' + data.geomagneticDip + ',deflectionAngle: ' + data.deflectionAngle +
  ',levelIntensity: ' + data.levelIntensity + ',totalIntensity: ' + data.totalIntensity);
});

sensor.getGeomagneticField(deprecated)

getGeomagneticField(locationOptions: LocationOptions, timeMillis: number): Promise<GeomagneticResponse>

Obtains the geomagnetic field of a geographic location. This API uses a promise to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getGeomagneticInfo instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
locationOptions LocationOptions Yes Geographic location.
timeMillis number Yes Time for obtaining the magnetic declination, in milliseconds.

Return value

Type Description
Promise<GeomagneticResponse> Promise used to return the geomagnetic field.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

const promise = sensor.getGeomagneticField({ latitude: 80, longitude: 0, altitude: 0 }, 1580486400000);
promise.then((data: sensor.GeomagneticResponse) => {
  console.info('Succeeded in getting sensor_getGeomagneticField_promise x: ' + data.x + ',y: ' + data.y + ',z: ' +
  data.z + ',geomagneticDip: ' + data.geomagneticDip + ',deflectionAngle: ' + data.deflectionAngle +
  ',levelIntensity: ' + data.levelIntensity + ',totalIntensity: ' + data.totalIntensity);
}).catch((reason: BusinessError) => {
  console.error(`Failed to operate.`);
})

sensor.getAltitude(deprecated)

getAltitude(seaPressure: number, currentPressure: number, callback: AsyncCallback<number>): void

Obtains the altitude at which the device is located based on the sea-level atmospheric pressure and the current atmospheric pressure. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getDeviceAltitude instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
seaPressure number Yes Sea-level atmospheric pressure, in hPa.
currentPressure number Yes Atmospheric pressure at the altitude where the device is located, in hPa.
callback AsyncCallback<number> Yes Callback used to return the altitude, in meters.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

sensor.getAltitude(0, 200, (err: BusinessError, data: number) => {
  if (err) {
    console.error(`Failed to operate. Code: ${err.code}, message: ${err.message}`);
    return;
  }
  console.info("Succeeded in getting getAltitude interface get data: " + data);
});

sensor.getAltitude(deprecated)

getAltitude(seaPressure: number, currentPressure: number): Promise<number>

Obtains the altitude at which the device is located based on the sea-level atmospheric pressure and the current atmospheric pressure. This API uses a promise to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getDeviceAltitude instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
seaPressure number Yes Sea-level atmospheric pressure, in hPa.
currentPressure number Yes Atmospheric pressure at the altitude where the device is located, in hPa.

Return value

Type Description
Promise<number> Promise used to return the altitude, in meters.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

const promise = sensor.getAltitude(0, 200);
promise.then((data: number) => {
  console.info('Succeeded in getting sensor_getAltitude_Promise success', data);
}).catch((err: BusinessError) => {
  console.error(`Failed to operate.`);
})

sensor.getGeomagneticDip(deprecated)

getGeomagneticDip(inclinationMatrix: Array<number>, callback: AsyncCallback<number>): void

Obtains the magnetic dip based on the inclination matrix. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getInclination instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
inclinationMatrix Array<number> Yes Inclination matrix.
callback AsyncCallback<number> Yes Callback used to return the magnetic dip, in radians.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

sensor.getGeomagneticDip([1, 0, 0, 0, 1, 0, 0, 0, 1], (err: BusinessError, data: number) => {
  if (err) {
    console.error(`Failed to register data. Code: ${err.code}, message: ${err.message}`);
    return;
  }
  console.info("Succeeded in getting getGeomagneticDip interface get data: " + data);
})

sensor.getGeomagneticDip(deprecated)

getGeomagneticDip(inclinationMatrix: Array<number>): Promise<number>

Obtains the magnetic dip based on the inclination matrix. This API uses a promise to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getInclination instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
inclinationMatrix Array<number> Yes Inclination matrix.

Return value

Type Description
Promise<number> Promise used to return the magnetic dip, in radians.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

const promise = sensor.getGeomagneticDip([1, 0, 0, 0, 1, 0, 0, 0, 1]);
promise.then((data: number) => {
  console.info('Succeeded in get GeomagneticDip_promise', data);
}).catch((err: BusinessError) => {
  console.error(`Failed to operate.`);
})

sensor. getAngleModify(deprecated)

getAngleModify(currentRotationMatrix: Array<number>, preRotationMatrix: Array<number>, callback: AsyncCallback<Array<number>>): void

Obtains the angle change between two rotation matrices. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getAngleVariation instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
currentRotationMatrix Array<number> Yes Current rotation matrix.
preRotationMatrix Array<number> Yes The other rotation matrix.
callback AsyncCallback<Array<number>> Yes Asynchronous callback used to return the rotation angle changes around the z, x, and y axes, in degrees (°).

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

sensor.getAngleModify([1, 0, 0, 0, 1, 0, 0, 0, 1], [1, 0, 0, 0, 0.87, -0.50, 0, 0.50, 0.87],
                      (err: BusinessError, data: Array<number>) => {
  if (err) {
    console.error(`Failed to register data. Code: ${err.code}, message: ${err.message}`);
    return;
  }
  for (let i = 0; i < data.length; i++) {
    console.info("data[" + i + "]: " + data[i]);
  }
})

sensor. getAngleModify(deprecated)

getAngleModify(currentRotationMatrix: Array<number>, preRotationMatrix: Array<number>): Promise<Array<number>>

Obtains the angle change between two rotation matrices. This API uses a promise to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getAngleVariation instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
currentRotationMatrix Array<number> Yes Current rotation matrix.
preRotationMatrix Array<number> Yes The other rotation matrix.

Return value

Type Description
Promise<Array<number>> Promise used to return the rotation angle changes of the z, x, and y axes, in degrees (°).

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

const promise = sensor.getAngleModify([1, 0, 0, 0, 1, 0, 0, 0, 1], [1, 0, 0, 0, 0.87, -0.50, 0, 0.50, 0.87]);
promise.then((data: Array<number>) => {
  console.info('Succeeded in getting AngleModify_promise.');
  for (let i = 0; i < data.length; i++) {
    console.info("Succeeded in getting data[" + i + "]: " + data[i]);
  }
}).catch((reason: BusinessError) => {
  let e: BusinessError = reason as BusinessError;
  console.info("Succeeded in getting promise::catch", e);
})

sensor.createRotationMatrix(deprecated)

createRotationMatrix(rotationVector: Array<number>, callback: AsyncCallback<Array<number>>): void

Converts a rotation vector into a rotation matrix. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getRotationMatrix instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
rotationVector Array<number> Yes Rotation vector to convert.
callback AsyncCallback<Array<number>> Yes Callback used to return the rotation matrix.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

sensor.createRotationMatrix([0.20046076, 0.21907, 0.73978853, 0.60376877],
                            (err: BusinessError, data: Array<number>) => {
  if (err) {
    console.error(`Failed to register data. Code: ${err.code}, message: ${err.message}`);
    return;
  }
  for (let i = 0; i < data.length; i++) {
    console.info("Succeeded in getting data[" + i + "]: " + data[i]);
  }
})

sensor.createRotationMatrix(deprecated)

createRotationMatrix(rotationVector: Array<number>): Promise<Array<number>>

Converts a rotation vector into a rotation matrix. This API uses a promise to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getRotationMatrix instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
rotationVector Array<number> Yes Rotation vector to convert.

Return value

Type Description
Promise<Array<number>> Promise used to return the rotation matrix.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

const promise = sensor.createRotationMatrix([0.20046076, 0.21907, 0.73978853, 0.60376877]);
promise.then((data: Array<number>) => {
  console.info('Succeeded in getting createRotationMatrix_promise');
  for (let i = 0; i < data.length; i++) {
    console.info("data[" + i + "]: " + data[i]);
  }
}).catch((reason: BusinessError) => {
  console.info("Succeeded in getting promise::catch", reason);
})

sensor.createQuaternion(deprecated)

createQuaternion(rotationVector: Array<number>, callback: AsyncCallback<Array<number>>): void

Converts a rotation vector into a quaternion. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getQuaternion instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
rotationVector Array<number> Yes Rotation vector to convert.
callback AsyncCallback<Array<number>> Yes Callback used to return the quaternion.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

sensor.createQuaternion([0.20046076, 0.21907, 0.73978853, 0.60376877],
                        (err: BusinessError, data: Array<number>) => {
  if (err) {
    console.error(`Failed to register data. Code: ${err.code}, message: ${err.message}`);
    return;
  }
  for (let i = 0; i < data.length; i++) {
    console.info("Succeeded in getting data[" + i + "]: " + data[i]);
  }
})

sensor.createQuaternion(deprecated)

createQuaternion(rotationVector: Array<number>): Promise<Array<number>>

Converts a rotation vector into a quaternion. This API uses a promise to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getQuaternion> instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
rotationVector Array<number> Yes Rotation vector to convert.

Return value

Type Description
Promise<Array<number>> Promise used to return the quaternion.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

const promise = sensor.createQuaternion([0.20046076, 0.21907, 0.73978853, 0.60376877]);
promise.then((data: Array<number>) => {
  console.info('Succeeded in getting createQuaternion_promise');
  for (let i = 0; i < data.length; i++) {
    console.info("data[" + i + "]: " + data[i]);
  }
}).catch((err: BusinessError) => {
  console.error(`Failed to get promise.`);
})

sensor.getDirection(deprecated)

getDirection(rotationMatrix: Array<number>, callback: AsyncCallback<Array<number>>): void

Obtains the device direction based on the rotation matrix. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getOrientation instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
rotationMatrix Array<number> Yes Rotation matrix.
callback AsyncCallback<Array<number>> Yes Asynchronous callback used to return the rotation angles around the z, x, and y axes, in degrees (°).

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

sensor.getDirection([1, 0, 0, 0, 1, 0, 0, 0, 1], (err: BusinessError, data: Array<number>) => {
  if (err) {
    console.error(`Failed to register data. Code: ${err.code}, message: ${err.message}`);
    return;
  }
  console.info("Succeeded in getting getDirection interface get data: " + data);
  for (let i = 1; i < data.length; i++) {
    console.info("Succeeded in getting sensor_getDirection_callback" + data[i]);
  }
})

sensor.getDirection(deprecated)

getDirection(rotationMatrix: Array<number>): Promise<Array<number>>

Obtains the device direction based on the rotation matrix. This API uses a promise to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getOrientation instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
rotationMatrix Array<number> Yes Rotation matrix.

Return value

Type Description
Promise<Array<number>> Promise used to return the rotation angles around the z, x, and y axes, in degrees (°).

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

const promise = sensor.getDirection([1, 0, 0, 0, 1, 0, 0, 0, 1]);
promise.then((data: Array<number>) => {
  console.info('Succeeded in getting sensor_getAltitude_Promise', data);
  for (let i = 1; i < data.length; i++) {
    console.info("Succeeded in getting sensor_getDirection_promise" + data[i]);
  }
}).catch((err: BusinessError) => {
  console.error(`Failed to get promise.`);
})

sensor.createRotationMatrix(deprecated)

createRotationMatrix(gravity: Array<number>, geomagnetic: Array<number>, callback: AsyncCallback<RotationMatrixResponse>): void

Obtains the rotation matrix based on a gravity vector and geomagnetic vector. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getRotationMatrix instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
gravity Array<number> Yes Gravity vector.
geomagnetic Array<number> Yes Geomagnetic vector.
callback AsyncCallback<RotationMatrixResponse> Yes Callback used to return the rotation matrix.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

sensor.createRotationMatrix([-0.27775216, 0.5351276, 9.788099], [210.87253, -78.6096, -111.44444], 
                            (err: BusinessError, data: sensor.RotationMatrixResponse) => {
  if (err) {
    console.error(`Failed to get create rotationMatrix. Code: ${err.code}, message: ${err.message}`);
    return;
  }
  console.info(JSON.stringify(data));
})

sensor.createRotationMatrix(deprecated)

createRotationMatrix(gravity: Array<number>, geomagnetic: Array<number>): Promise<RotationMatrixResponse>

Obtains the rotation matrix based on a gravity vector and geomagnetic vector. This API uses a promise to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.getRotationMatrix instead.

System capability: SystemCapability.Sensors.Sensor

Parameters

Name Type Mandatory Description
gravity Array<number> Yes Gravity vector.
geomagnetic Array<number> Yes Geomagnetic vector.

Return value

Type Description
Promise<RotationMatrixResponse> Promise used to return the rotation matrix.

Example

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

const promise = sensor.createRotationMatrix([-0.27775216, 0.5351276, 9.788099], [210.87253, -78.6096, -111.44444]);
promise.then((data: sensor.RotationMatrixResponse) => {
  console.info(JSON.stringify(data));
}).catch((err: BusinessError) => {
  console.error(`Failed to get promise.`);
})

SensorType(deprecated)

Enumerates the sensor types.

NOTE

This API is supported since API version 8 and deprecated since API version 9. You are advised to use sensor.SensorId instead.

System capability: SystemCapability.Sensors.Sensor

Name Value Description
SENSOR_TYPE_ID_ACCELEROMETER 1 Acceleration sensor.
SENSOR_TYPE_ID_GYROSCOPE 2 Gyroscope sensor.
SENSOR_TYPE_ID_AMBIENT_LIGHT 5 Ambient light sensor.
SENSOR_TYPE_ID_MAGNETIC_FIELD 6 Magnetic field sensor.
SENSOR_TYPE_ID_BAROMETER 8 Barometer sensor.
SENSOR_TYPE_ID_HALL 10 Hall effect sensor.
SENSOR_TYPE_ID_PROXIMITY 12 Proximity sensor.
SENSOR_TYPE_ID_HUMIDITY 13 Humidity sensor.
SENSOR_TYPE_ID_ORIENTATION 256 Orientation sensor.
SENSOR_TYPE_ID_GRAVITY 257 Gravity sensor.
SENSOR_TYPE_ID_LINEAR_ACCELERATION 258 Linear acceleration sensor.
SENSOR_TYPE_ID_ROTATION_VECTOR 259 Rotation vector sensor.
SENSOR_TYPE_ID_AMBIENT_TEMPERATURE 260 Ambient temperature sensor.
SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED 261 Uncalibrated magnetic field sensor.
SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED 263 Uncalibrated gyroscope sensor.
SENSOR_TYPE_ID_SIGNIFICANT_MOTION 264 Significant motion sensor.
SENSOR_TYPE_ID_PEDOMETER_DETECTION 265 Pedometer detection sensor.
SENSOR_TYPE_ID_PEDOMETER 266 Pedometer sensor.
SENSOR_TYPE_ID_HEART_RATE 278 Heart rate sensor.
SENSOR_TYPE_ID_WEAR_DETECTION 280 Wear detection sensor.
SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED 281 Uncalibrated acceleration sensor.