Automatically reconnect sensors
Automatically reenable sensor connections for static sensors after a
Sensors HAL crash.
Bug: 111070257
Test: Request sensor events via a_sns_test, kill the sensors HAL,
verify that events are no longer received, restart the HAL and
verify that a_sns_test receives new sensor events.
Change-Id: I2baa7745cf07e29c186ac4b80679393d6e48bd56
diff --git a/services/sensorservice/SensorService.cpp b/services/sensorservice/SensorService.cpp
index f4e728b..1b9b945 100644
--- a/services/sensorservice/SensorService.cpp
+++ b/services/sensorservice/SensorService.cpp
@@ -633,8 +633,13 @@
do {
ssize_t count = device.poll(mSensorEventBuffer, numEventMax);
if (count < 0) {
- ALOGE("sensor poll failed (%s)", strerror(-count));
- break;
+ if(count == DEAD_OBJECT && device.isReconnecting()) {
+ device.reconnect();
+ continue;
+ } else {
+ ALOGE("sensor poll failed (%s)", strerror(-count));
+ break;
+ }
}
// Reset sensors_event_t.flags to zero for all events in the buffer.