Listen for Sensors HAL Death
Register for Sensors HAL Death notifications so that active sensor
connections can be re-established once the Sensors HAL restarts.
Bug: 111070257
Test: Builds, verified death receiver is called if Sensors HAL is
stopped.
Change-Id: I564b285c939ca8dc7288149c032ba6c639e2d12a
diff --git a/services/sensorservice/SensorDevice.cpp b/services/sensorservice/SensorDevice.cpp
index 68e5172..f813fe5 100644
--- a/services/sensorservice/SensorDevice.cpp
+++ b/services/sensorservice/SensorDevice.cpp
@@ -59,6 +59,13 @@
}
}
+void SensorsHalDeathReceivier::serviceDied(
+ uint64_t /* cookie */,
+ const wp<::android::hidl::base::V1_0::IBase>& /* service */) {
+ ALOGW("Sensors HAL died, attempting to reconnect.");
+ // TODO: Attempt reconnect
+}
+
struct SensorsCallback : public ISensorsCallback {
using Result = ::android::hardware::sensors::V1_0::Result;
Return<void> onDynamicSensorsConnected(
@@ -189,6 +196,8 @@
ALOGE("Failed to initialize Sensors HAL (%s)", strerror(-status));
} else {
connectionStatus = HalConnectionStatus::CONNECTED;
+ mSensorsHalDeathReceiver = new SensorsHalDeathReceivier();
+ sensors->linkToDeath(mSensorsHalDeathReceiver, 0 /* cookie */);
}
}