# Sensor

Structures and functions to receive and process sensor events in native code.

## Summary

| ### Enumerations ||
|---|---|
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa156d1cebb38c8a65846c4d9c006012a{ https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa1848fbab223d23914532b0e2cb0c1582 = -1, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aad72017f34c12971593a8cb14f4f254df = 1, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa3b31509a3efebafb413e78f5ec9ae0e8 = 2, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa80e9827f6c3ded009f354dc7078a2c68 = 4, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa105331b6dea6f08e0d8fe3b736f8c174 = 5, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aac37ae6172f2e29b96ec9ce49f102c00d = 6, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa0c6a2e526ed2e4442b3843976f906932 = 8, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa1aef4084a851c2bf897b50ff476830b7 = 9, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa3665ff44389ff1ef84d1f60cede4c19a = 10, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa8bbde3072fe5e03348c0aa6b095b1b89 = 11, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa334a074c761f104345900165d8a98b0c = 12, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa5b3578b95203c661fbf0f8b3896e4ca9 = 13, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa4c120b7cf0beeae331c20209b1c3dac8 = 14, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aaa140455ae04a0429e4d00c01e9be11bb = 15, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aaaadfe78bc9afa4d5d5335638f357ca8c = 16, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa7cbbbbdf1727d50c7fde5b9a959c5b2f = 17, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aaef07b65290b73d5beb5fb0ad2fd92785 = 18, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa05560dd16787970ee00b4615deaaea07 = 19, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa85cdb1d7c35d6e9c74d9115702771183 = 20, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aad832a081e9638ebbeb9205b19a005c9e = 21, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa4fc3c617ee46e2734661c9233a0449d4 = 28, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa38777f835667410c20091b22ed10ce5f = 29, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa7aa7fca448b98cb7a7318547bd324cf3 = 30, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa0480bda3037618f7e60336c36574cd4f = 31, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa965aa480b8c16cdb2267962be64a9431 = 32, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa226d7c6e4c2fdd1a631d7d71bea70695 = 33, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa7585f222d5b0c27f2ba61ab174b1b60a = 34, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aac4b6979cf59273c147cbf4b15e0ce52e = 35, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aad0026c735c243033023a18f8dd9af322 = 36, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aabefb8e5268cc2664f1cf959744a85778 = 37, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa920bfb982a8302b1e41e2878370aaade = 38, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa985145d2891080223e90a945119de917 = 39, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aaaa531f1a63dd1351e4aa9991dc6fed8d = 40, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aac6101f3d81fed10a4a64e13a852e93e0 = 41, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aafba42d3c8a21b510f26c4809af429762 = 42, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aaab1ab51e95f70279b4e6c3d52bb04e1a = 43 }` | enumSensor types. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf8654c714018c6241d9ebd01f3fb5a26{ https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaf8654c714018c6241d9ebd01f3fb5a26ae5d0475bd9491c4232a09afc81fa283d = -1, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaf8654c714018c6241d9ebd01f3fb5a26ae8e43df50b7b85ed54f22c40f2cd748e = 0, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaf8654c714018c6241d9ebd01f3fb5a26a5f306f3d45a19573539462e4c813edc0 = 1, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaf8654c714018c6241d9ebd01f3fb5a26ad7e9379a4f36a42f2659cd7aec214f2d = 2, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaf8654c714018c6241d9ebd01f3fb5a26a2df5fb4e8b684e6a801a4aff9f50ba13 = 3 }` | enumSensor accuracy measure. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga2f80701c36e79c0640d91c788feee0b3{ https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga2f80701c36e79c0640d91c788feee0b3a815a72e57a21338fae4dd19d4d8401e2 = -1, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga2f80701c36e79c0640d91c788feee0b3a8a64337fcb7e338d487dc3edc873df1c = 0, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga2f80701c36e79c0640d91c788feee0b3a8542165ae195bf5784cdd9ba66bd2ab5 = 1, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga2f80701c36e79c0640d91c788feee0b3a002273a1ab874159a38a7e3f6bb6a7bb = 2, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga2f80701c36e79c0640d91c788feee0b3aa2d29656b35889c4c23318982e847ae7 = 3 }` | enumSensor Reporting Modes. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga531c35e38ede3ea4e5ba5afb24b29493{ https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga531c35e38ede3ea4e5ba5afb24b29493a33015fcc28611a794c53c9a332c0547f = 0, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga531c35e38ede3ea4e5ba5afb24b29493ad6f04c5912e22cf569108967bef1f708 = 1, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga531c35e38ede3ea4e5ba5afb24b29493aea4fdfe8db1d02ed47a9a839fcf9fa46 = 2, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga531c35e38ede3ea4e5ba5afb24b29493a89eba01d41b1061eb8a84cd9eed44444 = 3 }` | enumSensor Direct Report Rates. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga9334a5b9057f32da96db9b5c6a045d67{ https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga9334a5b9057f32da96db9b5c6a045d67ac25b254b1ced7c5ab50914b76dfdcb5a = 1, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga9334a5b9057f32da96db9b5c6a045d67ae4abee6c5048c8e84f9c6e3ba5d5581e = 2 }` | enumSensor Direct Channel Type. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga8628933cde20921c453a6d2607bdad62{ https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga8628933cde20921c453a6d2607bdad62a71410e6ff1f8a45ce900b61dcbf36149 = 0, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga8628933cde20921c453a6d2607bdad62ae76d3ee093082a3244e4c470c5595840 = 1, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga8628933cde20921c453a6d2607bdad62a265934bc55c4ab6e83cec7cc2d3b31f8 = 0x10000, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga8628933cde20921c453a6d2607bdad62a7041dcbc64398047e08810dd5e0a0c60, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga8628933cde20921c453a6d2607bdad62a4e036399bc8dc5ba8a5b208f3600b1d9, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga8628933cde20921c453a6d2607bdad62ace6bf29031aff5af034eeb4b65c21ebb, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga8628933cde20921c453a6d2607bdad62a1756a7332540ee73b9b494919fa4d06d }` | enumSensor Additional Info Types. |

| ### Typedefs ||
|---|---|
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gae8fa8958183cb60dc2d5c622526ed6ae` | typedef `struct https://developer.android.com/ndk/reference/struct/a-additional-info-event#struct_a_additional_info_event` |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga6c9787b9595b37689c8ad621fc9c6f35` | typedef `struct https://developer.android.com/ndk/reference/struct/a-dynamic-sensor-event#struct_a_dynamic_sensor_event` |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga837cf80de697c99501d88bfe2326cfd4` | typedef `struct AHardwareBuffer` |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga591bcc3a2d0644842dfa3fd6b3626a1e` | typedef `struct https://developer.android.com/ndk/reference/struct/a-head-tracker-event#struct_a_head_tracker_event` |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga9e9fa0351510b8aa82f53e55368d57b2` | typedef `struct https://developer.android.com/ndk/reference/struct/a-heading-event#struct_a_heading_event` |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gae85b6eac76abe74e6e53d78bb3a4858c` | typedef `struct https://developer.android.com/ndk/reference/struct/a-heart-rate-event#struct_a_heart_rate_event` |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gac2dae3e4cdb5bc77dc1e2b6648d42061` | typedef `struct https://developer.android.com/ndk/reference/struct/a-limited-axes-imu-event#struct_a_limited_axes_imu_event` |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga3d8b7c8cc66f37e9a983d2b10f8b0707` | typedef `struct https://developer.android.com/ndk/reference/struct/a-limited-axes-imu-uncalibrated-event#struct_a_limited_axes_imu_uncalibrated_event` |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga0378daec23b2d8a70438ef7c3912475f` | typedef `struct https://developer.android.com/ndk/reference/struct/a-meta-data-event#struct_a_meta_data_event` |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710` | typedef `struct https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710` [ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710) is an opaque type that provides information about an hardware sensors. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga6bb167c45f0ef0a94d8f178d227e781f` | typedef `struct https://developer.android.com/ndk/reference/struct/a-sensor-event#struct_a_sensor_event` Information that describes a sensor event, refer to [SensorEvent](https://developer.android.com/reference/android/hardware/SensorEvent) for additional documentation. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae` | typedef `struct https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae` [ASensorEventQueue](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae) is an opaque type that provides access to [ASensorEvent](https://developer.android.com/ndk/reference/struct/a-sensor-event#struct_a_sensor_event) from hardware sensors. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga26ff51817e8b320a631b3bf4ed378d58` | typedef `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gafec8dd682458c750a5f0f913a0f162ce const *` [ASensorList](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga26ff51817e8b320a631b3bf4ed378d58) is an array of reference to [ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710). |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349` | typedef `struct https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349` [ASensorManager](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349) is an opaque type to manage sensors and events queues. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gafec8dd682458c750a5f0f913a0f162ce` | typedef `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *` [ASensorRef](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gafec8dd682458c750a5f0f913a0f162ce) is a type for constant pointers to [ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710). |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga207e807f9e18271f6a763e57232b409f` | typedef `struct https://developer.android.com/ndk/reference/struct/a-sensor-vector#struct_a_sensor_vector` A sensor event. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga24acc545b908dd24cadc44c5e0760b3b` | typedef `struct https://developer.android.com/ndk/reference/struct/a-uncalibrated-event#struct_a_uncalibrated_event` |

| ### Variables ||
|---|---|
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf5f4faf57944410c76ee2b7f47e441ab` | `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349 Use https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf7da5bf71ad59e5c488b2801f0fdc3ed` |

| ### Functions ||
|---|---|
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga03852b813887ec236a34c4aef0df4b68(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae *queue, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor)` | `int` Disable the selected sensor. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga48a8379cf9de9b09a71a00f8a3699499(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae *queue, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor)` | `int` Enable the selected sensor at default sampling rate. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gab3d4354fd0d3ceb5fa97c129b024a18a(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae *queue, https://developer.android.com/ndk/reference/struct/a-sensor-event#struct_a_sensor_event *events, size_t count)` | `ssize_t` Retrieve pending events in sensor event queue. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga79c9d6264fe81d4e30800f826db72913(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae *queue)` | `int` Determine if a sensor event queue has pending event to be processed. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gac15ee203a6caaec0949203b75f4e798b(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae *queue, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor, int32_t samplingPeriodUs, int64_t maxBatchReportLatencyUs)` | `int` Enable the selected sensor with sampling and report parameters. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga57da684224967d0bd1b1cfe50b1b7a22(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae *queue, bool enable)` | `int` Request that [ASENSOR_TYPE_ADDITIONAL_INFO](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa226d7c6e4c2fdd1a631d7d71bea70695) events to be delivered on the given [ASensorEventQueue](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae). |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa6e89b6d69dc3e07f2d7e72e81ec7937(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae *queue, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor, int32_t usec)` | `int` Sets the delivery rate of events in microseconds for the given sensor. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga81894ee97ace473fdd7185bd7800eb49(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349 *manager, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor, int channelId, int rate)` | `int` Configure direct report on channel. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gac46f8b28bcc7a846dea9d841cab0a67b(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349 *manager, https://developer.android.com/ndk/reference/group/looper#group___looper_1gadb10521a80138b777ba1bc2ca74d4af5 *looper, int ident, https://developer.android.com/ndk/reference/group/looper#group___looper_1gaffe82a2a73768b317e8c947d722f7a12 callback, void *data)` | `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae *` Creates a new sensor event queue and associate it with a looper. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga413bff7736d8f042fbd82a9f118e3043(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349 *manager, https://developer.android.com/ndk/reference/group/a-hardware-buffer#group___a_hardware_buffer_1ga837cf80de697c99501d88bfe2326cfd4 const *buffer, size_t size)` | `int` Create direct channel based on AHardwareBuffer. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gae26bcf4f74ffdb1d73b537af26512c6f(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349 *manager, int fd, size_t size)` | `int` Create direct channel based on shared memory. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga802c8c5e4f02c96472e7b11109ac8452(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349 *manager, int channelId)` | `void` Destroy a direct channel. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf35624037785cdea1e7fe9e0a73fc5e1(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349 *manager, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae *queue)` | `int` Destroys the event queue and free all resources associated to it. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf4880d87e01f5e2d4a9b8403e4047445(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349 *manager, int type)` | `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *` Returns the default sensor for the given type, or NULL if no sensor of that type exists. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga4313457c0e82f4afa77ef13860629633(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349 *manager, int type, bool wakeUp)` | `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *` Returns the default sensor with the given type and wakeUp properties or NULL if no sensor of this type and wakeUp properties exists. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga79ff84177da6e0891085872721060627(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349 *manager, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga26ff51817e8b320a631b3bf4ed378d58 *list)` | `ssize_t` Returns the list of available dynamic sensors. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga59fc117f6462f9368182949165e2f4fd() __DEPRECATED_IN(26` | `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349 *` Get a reference to the sensor manager. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf7da5bf71ad59e5c488b2801f0fdc3ed(const char *packageName)` | `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349 *` Get a reference to the sensor manager. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga645be938627498ab2b60d94c562204bd(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349 *manager, https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga26ff51817e8b320a631b3bf4ed378d58 *list)` | `int` Returns the list of available sensors. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gae9969580eda319926a677a6937c7afb1(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor)` | `int` Returns the maximum size of batches for this sensor. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaec7084c6a9d4d85f87c95a70511c5f53(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor)` | `int` Returns the hardware batch fifo size reserved to this sensor. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga0caffaff6e8562f9aee0213d056b7099(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor)` | `int` Returns the sensor's handle. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga3ff7541193c0b819abbabcfb5c9f6ddb(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor)` | `int` Get the highest direct rate level that a sensor supports. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gacb6e021757c07344b58742611eaf68e7(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor)` | `int` Returns the minimum delay allowed between events in microseconds. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga52f4b22990c70df0784b9ccf23314fae(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor)` | `const char *` Returns this sensor's name (non localized) |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga99e56b84cf421788c27998da8eab7e39(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor)` | `int` Returns the reporting mode for this sensor. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga3da2930dd866cf1f76da6bc39e578a46(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor)` | `float` Returns this sensors's resolution. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gabee3eb65390fc75a639c59d653af3591(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor)` | `const char *` Returns this sensor's string type. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93962747ab3c7d2b609f97af26fc0230(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor)` | `int` Return this sensor's type. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gafaf467fc71f7adba537a90f166e3320d(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor)` | `const char *` Returns this sensor's vendor's name (non localized) |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaece3141f4fc0cab998c7462eb2aa7a40(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor, int channelType)` | `bool` Test if sensor supports a certain type of direct channel. |
| `https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga0ff4118e400bedac62be6b79e9e0f924(https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710 const *sensor)` | `bool` Returns true if this is a wake up sensor, false otherwise. |

| ### Structs ||
|---|---|
| [AAdditionalInfoEvent](https://developer.android.com/ndk/reference/struct/a-additional-info-event) |   |
| [ADynamicSensorEvent](https://developer.android.com/ndk/reference/struct/a-dynamic-sensor-event) |   |
| [AHeadTrackerEvent](https://developer.android.com/ndk/reference/struct/a-head-tracker-event) |   |
| [AHeadingEvent](https://developer.android.com/ndk/reference/struct/a-heading-event) |   |
| [AHeartRateEvent](https://developer.android.com/ndk/reference/struct/a-heart-rate-event) |   |
| [ALimitedAxesImuEvent](https://developer.android.com/ndk/reference/struct/a-limited-axes-imu-event) |   |
| [ALimitedAxesImuUncalibratedEvent](https://developer.android.com/ndk/reference/struct/a-limited-axes-imu-uncalibrated-event) |   |
| [AMetaDataEvent](https://developer.android.com/ndk/reference/struct/a-meta-data-event) |   |
| [ASensorEvent](https://developer.android.com/ndk/reference/struct/a-sensor-event) | Information that describes a sensor event, refer to [SensorEvent](https://developer.android.com/reference/android/hardware/SensorEvent) for additional documentation. |
| [ASensorVector](https://developer.android.com/ndk/reference/struct/a-sensor-vector) | A sensor event. |
| [AUncalibratedEvent](https://developer.android.com/ndk/reference/struct/a-uncalibrated-event) |   |

## Enumerations

### Anonymous Enum 60

Declared in `android/sensor.h`

```
 Anonymous Enum 60
```
Sensor types.

See [android.hardware.SensorEvent::values](https://developer.android.com/reference/android/hardware/SensorEvent.html#values) for detailed explanations of the data returned for each of these types.

| Properties ||
|---|---|
| `ASENSOR_TYPE_ACCELEROMETER` | [ASENSOR_TYPE_ACCELEROMETER](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aad72017f34c12971593a8cb14f4f254df) reporting-mode: continuous All values are in SI units (m/s\^2) and measure the acceleration of the device minus the force of gravity. |
| `ASENSOR_TYPE_ACCELEROMETER_LIMITED_AXES` | [ASENSOR_TYPE_ACCELEROMETER_LIMITED_AXES](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa920bfb982a8302b1e41e2878370aaade) reporting-mode: continuous The first three values are in SI units (m/s\^2) and measure the acceleration of the device minus the force of gravity. The last three values indicate which acceleration axes are supported. A value of 1.0 means supported and a value of 0 means not supported. |
| `ASENSOR_TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED` | [ASENSOR_TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aaaa531f1a63dd1351e4aa9991dc6fed8d) reporting-mode: continuous The first three values are in SI units (m/s\^2) and measure the acceleration of the device minus the force of gravity. The middle three values represent the estimated bias for each axis. The last three values indicate which acceleration axes are supported. A value of 1.0 means supported and a value of 0 means not supported. |
| `ASENSOR_TYPE_ACCELEROMETER_UNCALIBRATED` | [ASENSOR_TYPE_ACCELEROMETER_UNCALIBRATED](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aac4b6979cf59273c147cbf4b15e0ce52e) |
| `ASENSOR_TYPE_ADDITIONAL_INFO` | This sensor type is for delivering additional sensor information aside from sensor event data. Additional information may include: - [ASENSOR_ADDITIONAL_INFO_INTERNAL_TEMPERATURE](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga8628933cde20921c453a6d2607bdad62a7041dcbc64398047e08810dd5e0a0c60) - [ASENSOR_ADDITIONAL_INFO_SAMPLING](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga8628933cde20921c453a6d2607bdad62a1756a7332540ee73b9b494919fa4d06d) - [ASENSOR_ADDITIONAL_INFO_SENSOR_PLACEMENT](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga8628933cde20921c453a6d2607bdad62ace6bf29031aff5af034eeb4b65c21ebb) - [ASENSOR_ADDITIONAL_INFO_UNTRACKED_DELAY](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga8628933cde20921c453a6d2607bdad62a265934bc55c4ab6e83cec7cc2d3b31f8) - [ASENSOR_ADDITIONAL_INFO_VEC3_CALIBRATION](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga8628933cde20921c453a6d2607bdad62a4e036399bc8dc5ba8a5b208f3600b1d9) <br /> This type will never bind to a sensor. In other words, no sensor in the sensor list can have the type [ASENSOR_TYPE_ADDITIONAL_INFO](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa226d7c6e4c2fdd1a631d7d71bea70695). If a device supports the sensor additional information feature, it will report additional information events via [ASensorEvent](https://developer.android.com/ndk/reference/struct/a-sensor-event#struct_a_sensor_event) and will have the type of [ASensorEvent](https://developer.android.com/ndk/reference/struct/a-sensor-event#struct_a_sensor_event) set to [ASENSOR_TYPE_ADDITIONAL_INFO](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa226d7c6e4c2fdd1a631d7d71bea70695) and the sensor of [ASensorEvent](https://developer.android.com/ndk/reference/struct/a-sensor-event#struct_a_sensor_event) set to the handle of the reporting sensor. Additional information reports consist of multiple frames ordered by [ASensorEvent#timestamp](https://developer.android.com/ndk/reference/struct/a-sensor-event#struct_a_sensor_event_1ab44e3dd8e3359e4920dc3f80df0bd12d). The first frame in the report will have a [AAdditionalInfoEvent#type](https://developer.android.com/ndk/reference/struct/a-additional-info-event#struct_a_additional_info_event_1a587fec0fd61131abf12c4c97a4f100fb) of [ASENSOR_ADDITIONAL_INFO_BEGIN](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga8628933cde20921c453a6d2607bdad62a71410e6ff1f8a45ce900b61dcbf36149), and the last frame in the report will have a [AAdditionalInfoEvent#type](https://developer.android.com/ndk/reference/struct/a-additional-info-event#struct_a_additional_info_event_1a587fec0fd61131abf12c4c97a4f100fb) of [ASENSOR_ADDITIONAL_INFO_END](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga8628933cde20921c453a6d2607bdad62ae76d3ee093082a3244e4c470c5595840). |
| `ASENSOR_TYPE_AMBIENT_TEMPERATURE` | [ASENSOR_TYPE_AMBIENT_TEMPERATURE](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa5b3578b95203c661fbf0f8b3896e4ca9) The ambient temperature sensor value is returned in Celcius. |
| `ASENSOR_TYPE_DYNAMIC_SENSOR_META` | A constant describing a dynamic sensor meta event sensor. A sensor event of this type is received when a dynamic sensor is added to or removed from the system. This sensor type should always use special trigger report mode. |
| `ASENSOR_TYPE_GAME_ROTATION_VECTOR` | [ASENSOR_TYPE_GAME_ROTATION_VECTOR](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aaa140455ae04a0429e4d00c01e9be11bb) |
| `ASENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR` | [ASENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa85cdb1d7c35d6e9c74d9115702771183) |
| `ASENSOR_TYPE_GRAVITY` | [ASENSOR_TYPE_GRAVITY](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa1aef4084a851c2bf897b50ff476830b7) All values are in SI units (m/s\^2) and measure the direction and magnitude of gravity. When the device is at rest, the output of the gravity sensor should be identical to that of the accelerometer. |
| `ASENSOR_TYPE_GYROSCOPE` | [ASENSOR_TYPE_GYROSCOPE](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa80e9827f6c3ded009f354dc7078a2c68) reporting-mode: continuous All values are in radians/second and measure the rate of rotation around the X, Y and Z axis. |
| `ASENSOR_TYPE_GYROSCOPE_LIMITED_AXES` | [ASENSOR_TYPE_GYROSCOPE_LIMITED_AXES](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa985145d2891080223e90a945119de917) reporting-mode: continuous The first three values are in radians/second and measure the rate of rotation around the X, Y and Z axis. The last three values indicate which rotation axes are supported. A value of 1.0 means supported and a value of 0 means not supported. |
| `ASENSOR_TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED` | [ASENSOR_TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aac6101f3d81fed10a4a64e13a852e93e0) reporting-mode: continuous The first three values are in radians/second and measure the rate of rotation around the X, Y and Z axis. The middle three values represent the estimated drift around each axis in rad/s. The last three values indicate which rotation axes are supported. A value of 1.0 means supported and a value of 0 means not supported. |
| `ASENSOR_TYPE_GYROSCOPE_UNCALIBRATED` | [ASENSOR_TYPE_GYROSCOPE_UNCALIBRATED](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aaaadfe78bc9afa4d5d5335638f357ca8c) |
| `ASENSOR_TYPE_HEADING` | [ASENSOR_TYPE_HEADING](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aafba42d3c8a21b510f26c4809af429762) reporting-mode: continuous A heading sensor measures the direction in which the device is pointing relative to true north in degrees. |
| `ASENSOR_TYPE_HEAD_TRACKER` | [ASENSOR_TYPE_HEAD_TRACKER](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aabefb8e5268cc2664f1cf959744a85778) reporting-mode: continuous Measures the orientation and rotational velocity of a user's head. Only for internal use within the Android system. |
| `ASENSOR_TYPE_HEART_BEAT` | [ASENSOR_TYPE_HEART_BEAT](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa0480bda3037618f7e60336c36574cd4f) |
| `ASENSOR_TYPE_HEART_RATE` | [ASENSOR_TYPE_HEART_RATE](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aad832a081e9638ebbeb9205b19a005c9e) |
| `ASENSOR_TYPE_HINGE_ANGLE` | [ASENSOR_TYPE_HINGE_ANGLE](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aad0026c735c243033023a18f8dd9af322) reporting-mode: on-change The hinge angle sensor value is returned in degrees. |
| `ASENSOR_TYPE_INVALID` | Invalid sensor type. Returned by [ASensor_getType](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93962747ab3c7d2b609f97af26fc0230) as error value. |
| `ASENSOR_TYPE_LIGHT` | [ASENSOR_TYPE_LIGHT](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa105331b6dea6f08e0d8fe3b736f8c174) reporting-mode: on-change The light sensor value is returned in SI lux units. |
| `ASENSOR_TYPE_LINEAR_ACCELERATION` | [ASENSOR_TYPE_LINEAR_ACCELERATION](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa3665ff44389ff1ef84d1f60cede4c19a) reporting-mode: continuous All values are in SI units (m/s\^2) and measure the acceleration of the device not including the force of gravity. |
| `ASENSOR_TYPE_LOW_LATENCY_OFFBODY_DETECT` | [ASENSOR_TYPE_LOW_LATENCY_OFFBODY_DETECT](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa7585f222d5b0c27f2ba61ab174b1b60a) |
| `ASENSOR_TYPE_MAGNETIC_FIELD` | [ASENSOR_TYPE_MAGNETIC_FIELD](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa3b31509a3efebafb413e78f5ec9ae0e8) reporting-mode: continuous All values are in micro-Tesla (uT) and measure the geomagnetic field in the X, Y and Z axis. |
| `ASENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED` | [ASENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa4c120b7cf0beeae331c20209b1c3dac8) |
| `ASENSOR_TYPE_MOISTURE_INTRUSION` | [ASENSOR_TYPE_MOISTURE_INTRUSION](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aaab1ab51e95f70279b4e6c3d52bb04e1a) reporting-mode: on-change A moisture sensor that detects water intrusion within the chassis of a device |
| `ASENSOR_TYPE_MOTION_DETECT` | [ASENSOR_TYPE_MOTION_DETECT](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa7aa7fca448b98cb7a7318547bd324cf3) |
| `ASENSOR_TYPE_POSE_6DOF` | [ASENSOR_TYPE_POSE_6DOF](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa4fc3c617ee46e2734661c9233a0449d4) |
| `ASENSOR_TYPE_PRESSURE` | [ASENSOR_TYPE_PRESSURE](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aac37ae6172f2e29b96ec9ce49f102c00d) The pressure sensor value is returned in hPa (millibar). |
| `ASENSOR_TYPE_PROXIMITY` | [ASENSOR_TYPE_PROXIMITY](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa0c6a2e526ed2e4442b3843976f906932) reporting-mode: on-change The proximity sensor which turns the screen off and back on during calls is the wake-up proximity sensor. Implement wake-up proximity sensor before implementing a non wake-up proximity sensor. For the wake-up proximity sensor set the flag SENSOR_FLAG_WAKE_UP. The value corresponds to the distance to the nearest object in centimeters. |
| `ASENSOR_TYPE_RELATIVE_HUMIDITY` | [ASENSOR_TYPE_RELATIVE_HUMIDITY](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa334a074c761f104345900165d8a98b0c) The relative humidity sensor value is returned in percent. |
| `ASENSOR_TYPE_ROTATION_VECTOR` | [ASENSOR_TYPE_ROTATION_VECTOR](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa8bbde3072fe5e03348c0aa6b095b1b89) |
| `ASENSOR_TYPE_SIGNIFICANT_MOTION` | [ASENSOR_TYPE_SIGNIFICANT_MOTION](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa7cbbbbdf1727d50c7fde5b9a959c5b2f) |
| `ASENSOR_TYPE_STATIONARY_DETECT` | [ASENSOR_TYPE_STATIONARY_DETECT](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa38777f835667410c20091b22ed10ce5f) |
| `ASENSOR_TYPE_STEP_COUNTER` | [ASENSOR_TYPE_STEP_COUNTER](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa05560dd16787970ee00b4615deaaea07) |
| `ASENSOR_TYPE_STEP_DETECTOR` | [ASENSOR_TYPE_STEP_DETECTOR](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aaef07b65290b73d5beb5fb0ad2fd92785) |

### Anonymous Enum 61

Declared in `android/sensor.h`

```
 Anonymous Enum 61
```
Sensor accuracy measure.

| Properties ||
|---|---|
| `ASENSOR_STATUS_ACCURACY_HIGH` | high accuracy |
| `ASENSOR_STATUS_ACCURACY_LOW` | low accuracy |
| `ASENSOR_STATUS_ACCURACY_MEDIUM` | medium accuracy |
| `ASENSOR_STATUS_NO_CONTACT` | no contact |
| `ASENSOR_STATUS_UNRELIABLE` | unreliable |

### Anonymous Enum 62

Declared in `android/sensor.h`

```
 Anonymous Enum 62
```
Sensor Reporting Modes.

| Properties ||
|---|---|
| `AREPORTING_MODE_CONTINUOUS` | continuous reporting |
| `AREPORTING_MODE_INVALID` | invalid reporting mode |
| `AREPORTING_MODE_ONE_SHOT` | one shot reporting |
| `AREPORTING_MODE_ON_CHANGE` | reporting on change |
| `AREPORTING_MODE_SPECIAL_TRIGGER` | special trigger reporting |

### Anonymous Enum 63

Declared in `android/sensor.h`

```
 Anonymous Enum 63
```
Sensor Direct Report Rates.

| Properties ||
|---|---|
| `ASENSOR_DIRECT_RATE_FAST` | nominal 200Hz |
| `ASENSOR_DIRECT_RATE_NORMAL` | nominal 50Hz |
| `ASENSOR_DIRECT_RATE_STOP` | stopped |
| `ASENSOR_DIRECT_RATE_VERY_FAST` | nominal 800Hz |

### Anonymous Enum 64

Declared in `android/sensor.h`

```
 Anonymous Enum 64
```
Sensor Direct Channel Type.

| Properties ||
|---|---|
| `ASENSOR_DIRECT_CHANNEL_TYPE_HARDWARE_BUFFER` | AHardwareBuffer. |
| `ASENSOR_DIRECT_CHANNEL_TYPE_SHARED_MEMORY` | shared memory created by ASharedMemory_create |

### Anonymous Enum 65

Declared in `android/sensor.h`

```
 Anonymous Enum 65
```
Sensor Additional Info Types.

Used to populate [AAdditionalInfoEvent#type](https://developer.android.com/ndk/reference/struct/a-additional-info-event#struct_a_additional_info_event_1a587fec0fd61131abf12c4c97a4f100fb).

| Properties ||
|---|---|
| `ASENSOR_ADDITIONAL_INFO_BEGIN` | Marks the beginning of additional information frames. |
| `ASENSOR_ADDITIONAL_INFO_END` | Marks the end of additional information frames. |
| `ASENSOR_ADDITIONAL_INFO_INTERNAL_TEMPERATURE` | float: Celsius temperature |
| `ASENSOR_ADDITIONAL_INFO_SAMPLING` | float\[2\]: raw sample period in seconds, standard deviation of sampling period |
| `ASENSOR_ADDITIONAL_INFO_SENSOR_PLACEMENT` | Location and orientation of sensor element in the device frame: origin is the geometric center of the mobile device screen surface; the axis definition corresponds to Android sensor definitions. float\[12\]: 3x4 matrix in row major order |
| `ASENSOR_ADDITIONAL_INFO_UNTRACKED_DELAY` | Estimation of the delay that is not tracked by sensor timestamps. This includes delay introduced by sensor front-end filtering, data transport, etc. float\[2\]: delay in seconds, standard deviation of estimated value |
| `ASENSOR_ADDITIONAL_INFO_VEC3_CALIBRATION` | First three rows of a homogeneous matrix, which represents calibration to a three-element vector raw sensor reading. float\[12\]: 3x4 matrix in row major order |

## Typedefs

### AAdditionalInfoEvent

Declared in `android/sensor.h`

```
struct AAdditionalInfoEvent AAdditionalInfoEvent
```

### ADynamicSensorEvent

Declared in `android/sensor.h`

```
struct ADynamicSensorEvent ADynamicSensorEvent
```

### AHardwareBuffer

Declared in `android/sensor.h`

```
struct AHardwareBuffer AHardwareBuffer
```

### AHeadTrackerEvent

Declared in `android/sensor.h`

```
struct AHeadTrackerEvent AHeadTrackerEvent
```

### AHeadingEvent

Declared in `android/sensor.h`

```
struct AHeadingEvent AHeadingEvent
```

### AHeartRateEvent

Declared in `android/sensor.h`

```
struct AHeartRateEvent AHeartRateEvent
```

### ALimitedAxesImuEvent

Declared in `android/sensor.h`

```
struct ALimitedAxesImuEvent ALimitedAxesImuEvent
```

### ALimitedAxesImuUncalibratedEvent

Declared in `android/sensor.h`

```
struct ALimitedAxesImuUncalibratedEvent ALimitedAxesImuUncalibratedEvent
```

### AMetaDataEvent

Declared in `android/sensor.h`

```
struct AMetaDataEvent AMetaDataEvent
```

### ASensor

Declared in `android/sensor.h`

```
struct ASensor ASensor
```
[ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710) is an opaque type that provides information about an hardware sensors.

A [ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710) pointer can be obtained using [ASensorManager_getDefaultSensor()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf4880d87e01f5e2d4a9b8403e4047445), [ASensorManager_getDefaultSensorEx()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga4313457c0e82f4afa77ef13860629633) or from a [ASensorList](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga26ff51817e8b320a631b3bf4ed378d58).

This file provides a set of functions to access properties of a [ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710):

- [ASensor_getName()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga52f4b22990c70df0784b9ccf23314fae)
- [ASensor_getVendor()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gafaf467fc71f7adba537a90f166e3320d)
- [ASensor_getType()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93962747ab3c7d2b609f97af26fc0230)
- [ASensor_getResolution()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga3da2930dd866cf1f76da6bc39e578a46)
- [ASensor_getMinDelay()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gacb6e021757c07344b58742611eaf68e7)
- [ASensor_getFifoMaxEventCount()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gae9969580eda319926a677a6937c7afb1)
- [ASensor_getFifoReservedEventCount()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaec7084c6a9d4d85f87c95a70511c5f53)
- [ASensor_getStringType()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gabee3eb65390fc75a639c59d653af3591)
- [ASensor_getReportingMode()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga99e56b84cf421788c27998da8eab7e39)
- [ASensor_isWakeUpSensor()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga0ff4118e400bedac62be6b79e9e0f924)
- [ASensor_getHandle()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga0caffaff6e8562f9aee0213d056b7099)

<br />

### ASensorEvent

Declared in `android/sensor.h`

```
struct ASensorEvent ASensorEvent
```
Information that describes a sensor event, refer to [SensorEvent](https://developer.android.com/reference/android/hardware/SensorEvent) for additional documentation.

NOTE: changes to this struct has to be backward compatible and reflected in sensors_event_t

### ASensorEventQueue

Declared in `android/sensor.h`

```
struct ASensorEventQueue ASensorEventQueue
```
[ASensorEventQueue](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae) is an opaque type that provides access to [ASensorEvent](https://developer.android.com/ndk/reference/struct/a-sensor-event#struct_a_sensor_event) from hardware sensors.

A new [ASensorEventQueue](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae) can be obtained using [ASensorManager_createEventQueue()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gac46f8b28bcc7a846dea9d841cab0a67b).

This file provides a set of functions to enable and disable sensors, check and get events, and set event rates on a [ASensorEventQueue](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae).

- [ASensorEventQueue_enableSensor()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga48a8379cf9de9b09a71a00f8a3699499)
- [ASensorEventQueue_disableSensor()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga03852b813887ec236a34c4aef0df4b68)
- [ASensorEventQueue_hasEvents()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga79c9d6264fe81d4e30800f826db72913)
- [ASensorEventQueue_getEvents()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gab3d4354fd0d3ceb5fa97c129b024a18a)
- [ASensorEventQueue_setEventRate()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa6e89b6d69dc3e07f2d7e72e81ec7937)
- [ASensorEventQueue_requestAdditionalInfoEvents()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga57da684224967d0bd1b1cfe50b1b7a22)

<br />

### ASensorList

Declared in `android/sensor.h`

```
ASensorRef const * ASensorList
```
[ASensorList](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga26ff51817e8b320a631b3bf4ed378d58) is an array of reference to [ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710).

A [ASensorList](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga26ff51817e8b320a631b3bf4ed378d58) can be initialized using [ASensorManager_getSensorList()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga645be938627498ab2b60d94c562204bd).

### ASensorManager

Declared in `android/sensor.h`

```
struct ASensorManager ASensorManager
```
[ASensorManager](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349) is an opaque type to manage sensors and events queues.

[ASensorManager](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349) is a singleton that can be obtained using [ASensorManager_getInstance()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga59fc117f6462f9368182949165e2f4fd).

This file provides a set of functions that uses [ASensorManager](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349) to access and list hardware sensors, and create and destroy event queues:

- [ASensorManager_getSensorList()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga645be938627498ab2b60d94c562204bd)
- [ASensorManager_getDefaultSensor()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf4880d87e01f5e2d4a9b8403e4047445)
- [ASensorManager_getDefaultSensorEx()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga4313457c0e82f4afa77ef13860629633)
- [ASensorManager_createEventQueue()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gac46f8b28bcc7a846dea9d841cab0a67b)
- [ASensorManager_destroyEventQueue()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf35624037785cdea1e7fe9e0a73fc5e1)

<br />

### ASensorRef

Declared in `android/sensor.h`

```
ASensor const * ASensorRef
```
[ASensorRef](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gafec8dd682458c750a5f0f913a0f162ce) is a type for constant pointers to [ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710).

This is used to define entry in [ASensorList](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga26ff51817e8b320a631b3bf4ed378d58) arrays.

### ASensorVector

Declared in `android/sensor.h`

```
struct ASensorVector ASensorVector
```
A sensor event.

### AUncalibratedEvent

Declared in `android/sensor.h`

```
struct AUncalibratedEvent AUncalibratedEvent
```

## Variables

### instead

Declared in `android/sensor.h`

```
ASensorManager Use ASensorManager_getInstanceForPackage instead
```

## Functions

### ASensorEventQueue_disableSensor

Declared in `android/sensor.h`

```
int ASensorEventQueue_disableSensor(
  ASensorEventQueue *queue,
  ASensor const *sensor
)
```
Disable the selected sensor.

Stop event reports from the sensor to specified sensor event queue.

<br />

Details Parameters `queue` [ASensorEventQueue](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae) to be changed `sensor` [ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710) to be disabled **Returns** 0 on success or a negative error code on failure.

### ASensorEventQueue_enableSensor

Declared in `android/sensor.h`

```
int ASensorEventQueue_enableSensor(
  ASensorEventQueue *queue,
  ASensor const *sensor
)
```
Enable the selected sensor at default sampling rate.

Start event reports of a sensor to specified sensor event queue at a default rate.

<br />

Details Parameters `queue` [ASensorEventQueue](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae) for sensor event to be report to. `sensor` [ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710) to be enabled. **Returns** 0 on success or a negative error code on failure.

### ASensorEventQueue_getEvents

Declared in `android/sensor.h`

```
ssize_t ASensorEventQueue_getEvents(
  ASensorEventQueue *queue,
  ASensorEvent *events,
  size_t count
)
```
Retrieve pending events in sensor event queue.

Retrieve next available events from the queue to a specified event array.


Examples:

```
ASensorEvent event;
ssize_t numEvent = ASensorEventQueue_getEvents(queue, &event, 1);

ASensorEvent eventBuffer[8];
ssize_t numEvent = ASensorEventQueue_getEvents(queue, eventBuffer, 8);
```

<br />

Details Parameters `queue` [ASensorEventQueue](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae) to get events from `events` pointer to an array of [ASensorEvent](https://developer.android.com/ndk/reference/struct/a-sensor-event#struct_a_sensor_event). `count` max number of event that can be filled into array event. **Returns** number of events returned on success; negative error code when no events are pending or an error has occurred.

### ASensorEventQueue_hasEvents

Declared in `android/sensor.h`

```
int ASensorEventQueue_hasEvents(
  ASensorEventQueue *queue
)
```
Determine if a sensor event queue has pending event to be processed.

<br />

Details Parameters `queue` [ASensorEventQueue](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae) to be queried **Returns** 1 if the queue has events; 0 if it does not have events; or a negative value if there is an error.

### ASensorEventQueue_registerSensor

Declared in `android/sensor.h`

```
int ASensorEventQueue_registerSensor(
  ASensorEventQueue *queue,
  ASensor const *sensor,
  int32_t samplingPeriodUs,
  int64_t maxBatchReportLatencyUs
)
```
Enable the selected sensor with sampling and report parameters.

Enable the selected sensor at a specified sampling period and max batch report latency. To disable sensor, use [ASensorEventQueue_disableSensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga03852b813887ec236a34c4aef0df4b68).

<br />

Details Parameters `queue` [ASensorEventQueue](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae) for sensor event to be report to. `sensor` [ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710) to be enabled. `samplingPeriodUs` sampling period of sensor in microseconds. `maxBatchReportLatencyUs` maximum time interval between two batches of sensor events are delievered in microseconds. For sensor streaming, set to 0. **Returns** 0 on success or a negative error code on failure.

### ASensorEventQueue_requestAdditionalInfoEvents

Declared in `android/sensor.h`

```
int ASensorEventQueue_requestAdditionalInfoEvents(
  ASensorEventQueue *queue,
  bool enable
)
```
Request that [ASENSOR_TYPE_ADDITIONAL_INFO](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa226d7c6e4c2fdd1a631d7d71bea70695) events to be delivered on the given [ASensorEventQueue](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae).

Sensor data events are always delivered to the [ASensorEventQueue](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae).

The [ASENSOR_TYPE_ADDITIONAL_INFO](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa226d7c6e4c2fdd1a631d7d71bea70695) events will be returned through [ASensorEventQueue_getEvents](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gab3d4354fd0d3ceb5fa97c129b024a18a). The client is responsible for checking [ASensorEvent#type](https://developer.android.com/ndk/reference/struct/a-sensor-event#struct_a_sensor_event_1ae7b3559b790a24062c6ae9bc98a9ef0e) to determine the event type prior to handling of the event.

The client must be tolerant of any value for [AAdditionalInfoEvent#type](https://developer.android.com/ndk/reference/struct/a-additional-info-event#struct_a_additional_info_event_1a587fec0fd61131abf12c4c97a4f100fb), as new values may be defined in the future and may delivered to the client.

Available since API level 29.

<br />

Details Parameters `queue` [ASensorEventQueue](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae) to configure `enable` true to request [ASENSOR_TYPE_ADDITIONAL_INFO](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa226d7c6e4c2fdd1a631d7d71bea70695) events, false to stop receiving events **Returns** 0 on success or a negative error code on failure

### ASensorEventQueue_setEventRate

Declared in `android/sensor.h`

```
int ASensorEventQueue_setEventRate(
  ASensorEventQueue *queue,
  ASensor const *sensor,
  int32_t usec
)
```
Sets the delivery rate of events in microseconds for the given sensor.

This function has to be called after [ASensorEventQueue_enableSensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga48a8379cf9de9b09a71a00f8a3699499). Note that this is a hint only, generally event will arrive at a higher rate. It is an error to set a rate inferior to the value returned by [ASensor_getMinDelay()](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gacb6e021757c07344b58742611eaf68e7).

<br />

Details Parameters `queue` [ASensorEventQueue](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaa9448106d6d463f4cc5dded7c914e7ae) to which sensor event is delivered. `sensor` [ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710) of which sampling rate to be updated. `usec` sensor sampling period (1/sampling rate) in microseconds **Returns** 0 on sucess or a negative error code on failure.

### ASensorManager_configureDirectReport

Declared in `android/sensor.h`

```
int ASensorManager_configureDirectReport(
  ASensorManager *manager,
  ASensor const *sensor,
  int channelId,
  int rate
)
```
Configure direct report on channel.

Configure sensor direct report on a direct channel: set rate to value other than [ASENSOR_DIRECT_RATE_STOP](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga531c35e38ede3ea4e5ba5afb24b29493a33015fcc28611a794c53c9a332c0547f) so that sensor event can be directly written into the shared memory region used for creating the buffer. It returns a positive token which can be used for identify sensor events from different sensors on success. Calling with rate [ASENSOR_DIRECT_RATE_STOP](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga531c35e38ede3ea4e5ba5afb24b29493a33015fcc28611a794c53c9a332c0547f) will stop direct report of the sensor specified in the channel.

To stop all active sensor direct report configured to a channel, set sensor to NULL and rate to [ASENSOR_DIRECT_RATE_STOP](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga531c35e38ede3ea4e5ba5afb24b29493a33015fcc28611a794c53c9a332c0547f).

In order to successfully configure a direct report, the sensor has to support the specified rate and the channel type, which can be checked by [ASensor_getHighestDirectReportRateLevel](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga3ff7541193c0b819abbabcfb5c9f6ddb) and [ASensor_isDirectChannelTypeSupported](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaece3141f4fc0cab998c7462eb2aa7a40), respectively.

Example:

```
ASensorManager *manager = ...;
ASensor *sensor = ...;
int channelId = ...;

ASensorManager_configureDirectReport(manager, sensor, channel_id, ASENSOR_DIRECT_RATE_FAST);
```

<br />

Available since API level 26.

<br />

Details Parameters `manager` the [ASensorManager](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349) instance obtained from [ASensorManager_getInstanceForPackage](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf7da5bf71ad59e5c488b2801f0fdc3ed). `sensor` a [ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710) to denote which sensor to be operate. It can be NULL if rate is [ASENSOR_DIRECT_RATE_STOP](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga531c35e38ede3ea4e5ba5afb24b29493a33015fcc28611a794c53c9a332c0547f), denoting stopping of all active sensor direct report. `channelId` channel id (a positive integer) returned from [ASensorManager_createSharedMemoryDirectChannel](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gae26bcf4f74ffdb1d73b537af26512c6f) or [ASensorManager_createHardwareBufferDirectChannel](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga413bff7736d8f042fbd82a9f118e3043). `rate` one of predefined ASENSOR_DIRECT_RATE_... that is supported by the sensor. **Returns** positive token for success or negative error code.

### ASensorManager_createEventQueue

Declared in `android/sensor.h`

```
ASensorEventQueue * ASensorManager_createEventQueue(
  ASensorManager *manager,
  ALooper *looper,
  int ident,
  ALooper_callbackFunc callback,
  void *data
)
```
Creates a new sensor event queue and associate it with a looper.

"ident" is a identifier for the events that will be returned when calling [ALooper_pollOnce()](https://developer.android.com/ndk/reference/group/looper#group___looper_1ga2a9044602b76fef7f47c7e11a801561c). The identifier must be \>= 0, or ALOOPER_POLL_CALLBACK if providing a non-NULL callback.

### ASensorManager_createHardwareBufferDirectChannel

Declared in `android/sensor.h`

```
int ASensorManager_createHardwareBufferDirectChannel(
  ASensorManager *manager,
  AHardwareBuffer const *buffer,
  size_t size
)
```
Create direct channel based on AHardwareBuffer.

Create a direct channel of [ASENSOR_DIRECT_CHANNEL_TYPE_HARDWARE_BUFFER](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga9334a5b9057f32da96db9b5c6a045d67ae4abee6c5048c8e84f9c6e3ba5d5581e) type to be used for configuring sensor direct report.

Available since API level 26.

<br />

Details Parameters `manager` the [ASensorManager](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349) instance obtained from [ASensorManager_getInstanceForPackage](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf7da5bf71ad59e5c488b2801f0fdc3ed). `buffer` [AHardwareBuffer](https://developer.android.com/ndk/reference/group/a-hardware-buffer#group___a_hardware_buffer) instance created by [AHardwareBuffer_allocate](https://developer.android.com/ndk/reference/group/a-hardware-buffer#group___a_hardware_buffer_1ga287478029a8f416b75db68a11e1eb5e0). `size` the intended size to be used, must be less or equal to size of buffer. **Returns** a positive integer as a channel id to be used in [ASensorManager_destroyDirectChannel](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga802c8c5e4f02c96472e7b11109ac8452) and [ASensorManager_configureDirectReport](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga81894ee97ace473fdd7185bd7800eb49), or value less or equal to 0 for failures.

### ASensorManager_createSharedMemoryDirectChannel

Declared in `android/sensor.h`

```
int ASensorManager_createSharedMemoryDirectChannel(
  ASensorManager *manager,
  int fd,
  size_t size
)
```
Create direct channel based on shared memory.

Create a direct channel of [ASENSOR_DIRECT_CHANNEL_TYPE_SHARED_MEMORY](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga9334a5b9057f32da96db9b5c6a045d67ac25b254b1ced7c5ab50914b76dfdcb5a) to be used for configuring sensor direct report.

Available since API level 26.

<br />

Details Parameters `manager` the [ASensorManager](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349) instance obtained from [ASensorManager_getInstanceForPackage](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf7da5bf71ad59e5c488b2801f0fdc3ed). `fd` file descriptor representing a shared memory created by [ASharedMemory_create](https://developer.android.com/ndk/reference/group/memory#group___memory_1ga81461a072ab1df987229c2d40b06272e) `size` size to be used, must be less or equal to size of shared memory. **Returns** a positive integer as a channel id to be used in [ASensorManager_destroyDirectChannel](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga802c8c5e4f02c96472e7b11109ac8452) and [ASensorManager_configureDirectReport](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga81894ee97ace473fdd7185bd7800eb49), or value less or equal to 0 for failures.

### ASensorManager_destroyDirectChannel

Declared in `android/sensor.h`

```
void ASensorManager_destroyDirectChannel(
  ASensorManager *manager,
  int channelId
)
```
Destroy a direct channel.

Destroy a direct channel previously created by using one of ASensorManager_create\*DirectChannel() derivative functions. Note that the buffer used for creating the direct channel does not get destroyed with ASensorManager_destroyDirectChannel and has to be closed or released separately.

Available since API level 26.

<br />

Details Parameters `manager` the [ASensorManager](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349) instance obtained from [ASensorManager_getInstanceForPackage](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf7da5bf71ad59e5c488b2801f0fdc3ed). `channelId` channel id (a positive integer) returned from [ASensorManager_createSharedMemoryDirectChannel](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gae26bcf4f74ffdb1d73b537af26512c6f) or [ASensorManager_createHardwareBufferDirectChannel](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga413bff7736d8f042fbd82a9f118e3043).

### ASensorManager_destroyEventQueue

Declared in `android/sensor.h`

```
int ASensorManager_destroyEventQueue(
  ASensorManager *manager,
  ASensorEventQueue *queue
)
```
Destroys the event queue and free all resources associated to it.

### ASensorManager_getDefaultSensor

Declared in `android/sensor.h`

```
ASensor const * ASensorManager_getDefaultSensor(
  ASensorManager *manager,
  int type
)
```
Returns the default sensor for the given type, or NULL if no sensor of that type exists.

### ASensorManager_getDefaultSensorEx

Declared in `android/sensor.h`

```
ASensor const * ASensorManager_getDefaultSensorEx(
  ASensorManager *manager,
  int type,
  bool wakeUp
)
```
Returns the default sensor with the given type and wakeUp properties or NULL if no sensor of this type and wakeUp properties exists.

Available since API level 21.

### ASensorManager_getDynamicSensorList

Declared in `android/sensor.h`

```
ssize_t ASensorManager_getDynamicSensorList(
  ASensorManager *manager,
  ASensorList *list
)
```
Returns the list of available dynamic sensors.

If there are no dynamic sensors available, returns nullptr in list.

Each time this is called, the previously returned list is deallocated and must no longer be used.

Clients should call this if they receive a sensor update from [ASENSOR_TYPE_DYNAMIC_SENSOR_META](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa965aa480b8c16cdb2267962be64a9431) indicating the sensors have changed. If this happens, previously received lists from this method will be stale.

Available since API level 33.

<br />

Details Parameters `manager` the [ASensorManager](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349) instance obtained from [ASensorManager_getInstanceForPackage](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf7da5bf71ad59e5c488b2801f0fdc3ed). `list` the returned list of dynamic sensors. **Returns** positive number of returned sensors or negative error code. BAD_VALUE: manager is NULL.

### ASensorManager_getInstance

Declared in `android/sensor.h`

```
ASensorManager * ASensorManager_getInstance() __DEPRECATED_IN(26
```
Get a reference to the sensor manager.

ASensorManager is a singleton per package as different packages may have access to different sensors.

Deprecated: Use [ASensorManager_getInstanceForPackage(const char\*)](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf7da5bf71ad59e5c488b2801f0fdc3ed) instead.

Example:

```
ASensorManager* sensorManager = ASensorManager_getInstance();
```

<br />

### ASensorManager_getInstanceForPackage

Declared in `android/sensor.h`

```
ASensorManager * ASensorManager_getInstanceForPackage(
  const char *packageName
)
```
Get a reference to the sensor manager.

ASensorManager is a singleton per package as different packages may have access to different sensors.

Example:

```
ASensorManager* sensorManager = ASensorManager_getInstanceForPackage("foo.bar.baz");
```

<br />

Available since API level 26.

### ASensorManager_getSensorList

Declared in `android/sensor.h`

```
int ASensorManager_getSensorList(
  ASensorManager *manager,
  ASensorList *list
)
```
Returns the list of available sensors.

The returned list is owned by the sensor manager and will not change between calls to this function.

<br />

Details Parameters `manager` the [ASensorManager](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaef620baab9b276ab8f914ae77babc349) instance obtained from [ASensorManager_getInstanceForPackage](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gaf7da5bf71ad59e5c488b2801f0fdc3ed). `list` the returned list of sensors. **Returns** positive number of returned sensors or negative error code. BAD_VALUE: manager is NULL.

### ASensor_getFifoMaxEventCount

Declared in `android/sensor.h`

```
int ASensor_getFifoMaxEventCount(
  ASensor const *sensor
)
```
Returns the maximum size of batches for this sensor.

Batches will often be smaller, as the hardware fifo might be used for other sensors.

Available since API level 21.

### ASensor_getFifoReservedEventCount

Declared in `android/sensor.h`

```
int ASensor_getFifoReservedEventCount(
  ASensor const *sensor
)
```
Returns the hardware batch fifo size reserved to this sensor.

Available since API level 21.

### ASensor_getHandle

Declared in `android/sensor.h`

```
int ASensor_getHandle(
  ASensor const *sensor
)
```
Returns the sensor's handle.

The handle identifies the sensor within the system and is included in the sensor field of [ASensorEvent](https://developer.android.com/ndk/reference/struct/a-sensor-event#struct_a_sensor_event), including those sent with type [ASENSOR_TYPE_ADDITIONAL_INFO](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa226d7c6e4c2fdd1a631d7d71bea70695).

A sensor's handle is able to be used to map [ASENSOR_TYPE_ADDITIONAL_INFO](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ggaa156d1cebb38c8a65846c4d9c006012aa226d7c6e4c2fdd1a631d7d71bea70695) events to the sensor that generated the event.

It is important to note that the value returned by [ASensor_getHandle](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga0caffaff6e8562f9aee0213d056b7099) is not the same as the value returned by the Java API [android.hardware.Sensor's getId()](https://developer.android.com/reference/android/hardware/Sensor#getId()) and no mapping exists between the values.

Available since API level 29.

### ASensor_getHighestDirectReportRateLevel

Declared in `android/sensor.h`

```
int ASensor_getHighestDirectReportRateLevel(
  ASensor const *sensor
)
```
Get the highest direct rate level that a sensor supports.

Available since API level 26.

<br />

Details Parameters `sensor` a [ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710) to denote the sensor to be checked. **Returns** a ASENSOR_DIRECT_RATE_... enum denoting the highest rate level supported by the sensor. If return value is [ASENSOR_DIRECT_RATE_STOP](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga531c35e38ede3ea4e5ba5afb24b29493a33015fcc28611a794c53c9a332c0547f), it means the sensor does not support direct report.

### ASensor_getMinDelay

Declared in `android/sensor.h`

```
int ASensor_getMinDelay(
  ASensor const *sensor
)
```
Returns the minimum delay allowed between events in microseconds.

A value of zero means that this sensor doesn't report events at a constant rate, but rather only when a new data is available.

### ASensor_getName

Declared in `android/sensor.h`

```
const char * ASensor_getName(
  ASensor const *sensor
)
```
Returns this sensor's name (non localized)

### ASensor_getReportingMode

Declared in `android/sensor.h`

```
int ASensor_getReportingMode(
  ASensor const *sensor
)
```
Returns the reporting mode for this sensor.

One of AREPORTING_MODE_\* constants.

Available since API level 21.

### ASensor_getResolution

Declared in `android/sensor.h`

```
float ASensor_getResolution(
  ASensor const *sensor
)
```
Returns this sensors's resolution.

### ASensor_getStringType

Declared in `android/sensor.h`

```
const char * ASensor_getStringType(
  ASensor const *sensor
)
```
Returns this sensor's string type.

Available since API level 21.

### ASensor_getType

Declared in `android/sensor.h`

```
int ASensor_getType(
  ASensor const *sensor
)
```
Return this sensor's type.

### ASensor_getVendor

Declared in `android/sensor.h`

```
const char * ASensor_getVendor(
  ASensor const *sensor
)
```
Returns this sensor's vendor's name (non localized)

### ASensor_isDirectChannelTypeSupported

Declared in `android/sensor.h`

```
bool ASensor_isDirectChannelTypeSupported(
  ASensor const *sensor,
  int channelType
)
```
Test if sensor supports a certain type of direct channel.

Available since API level 26.

<br />

Details Parameters `sensor` a [ASensor](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1ga93b28b7ce5e9b6d2ebc5b574cd5f4710) to denote the sensor to be checked. `channelType` Channel type constant, either [ASENSOR_DIRECT_CHANNEL_TYPE_SHARED_MEMORY](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga9334a5b9057f32da96db9b5c6a045d67ac25b254b1ced7c5ab50914b76dfdcb5a) or [ASENSOR_DIRECT_CHANNEL_TYPE_HARDWARE_BUFFER](https://developer.android.com/ndk/reference/group/sensor#group___sensor_1gga9334a5b9057f32da96db9b5c6a045d67ae4abee6c5048c8e84f9c6e3ba5d5581e). **Returns** true if sensor supports the specified direct channel type.

### ASensor_isWakeUpSensor

Declared in `android/sensor.h`

```
bool ASensor_isWakeUpSensor(
  ASensor const *sensor
)
```
Returns true if this is a wake up sensor, false otherwise.

Available since API level 21.