diff --git a/native/android/sensor.cpp b/native/android/sensor.cpp index b09bc2ec3dba2..73b52aa2c6043 100644 --- a/native/android/sensor.cpp +++ b/native/android/sensor.cpp @@ -59,6 +59,19 @@ ASensor const* ASensorManager_getDefaultSensor(ASensorManager* manager, int type return static_cast(manager)->getDefaultSensor(type); } +ASensor const* ASensorManager_getDefaultSensorEx(ASensorManager* manager, + int type, bool wakeUp) { + Sensor const* const* sensorList; + size_t size = static_cast(manager)->getSensorList(&sensorList); + for (size_t i = 0; i < size; ++i) { + if (ASensor_getType(sensorList[i]) == type && + ASensor_isWakeUpSensor(sensorList[i]) == wakeUp) { + return reinterpret_cast(sensorList[i]); + } + } + return NULL; +} + ASensorEventQueue* ASensorManager_createEventQueue(ASensorManager* manager, ALooper* looper, int ident, ALooper_callbackFunc callback, void* data) { @@ -176,3 +189,8 @@ int ASensor_getReportingMode(ASensor const* sensor) { return static_cast(sensor)->getReportingMode(); } + +bool ASensor_isWakeUpSensor(ASensor const* sensor) +{ + return static_cast(sensor)->isWakeUpSensor(); +} \ No newline at end of file