diff options
author | Aravind Akella <aakella@google.com> | 2015-07-20 17:29:33 -0700 |
---|---|---|
committer | Aravind Akella <aakella@google.com> | 2015-07-20 17:32:09 -0700 |
commit | f504789dd3b3073de176fd2fa09dd9fc9de5bc1f (patch) | |
tree | 0c440cbd0bc491be65c81e10e315ab637fa5d2f3 /services/sensorservice | |
parent | 5f920c1a2cf12c0638c05fbddee8ff6c1193731c (diff) | |
download | frameworks_native-f504789dd3b3073de176fd2fa09dd9fc9de5bc1f.zip frameworks_native-f504789dd3b3073de176fd2fa09dd9fc9de5bc1f.tar.gz frameworks_native-f504789dd3b3073de176fd2fa09dd9fc9de5bc1f.tar.bz2 |
Check for the presence of accel and magnetometer sensors before adding AOSP fusion sensors.
Bug: 22502485
Change-Id: I3d9018649302b98004e4e216b2173e8411a08501
Diffstat (limited to 'services/sensorservice')
-rw-r--r-- | services/sensorservice/SensorService.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/services/sensorservice/SensorService.cpp b/services/sensorservice/SensorService.cpp index bb2d4f3..40b21a9 100644 --- a/services/sensorservice/SensorService.cpp +++ b/services/sensorservice/SensorService.cpp @@ -84,7 +84,7 @@ void SensorService::onFirstRef() ssize_t count = dev.getSensorList(&list); if (count > 0) { ssize_t orientationIndex = -1; - bool hasGyro = false; + bool hasGyro = false, hasAccel = false, hasMag = false; uint32_t virtualSensorsNeeds = (1<<SENSOR_TYPE_GRAVITY) | (1<<SENSOR_TYPE_LINEAR_ACCELERATION) | @@ -94,6 +94,12 @@ void SensorService::onFirstRef() for (ssize_t i=0 ; i<count ; i++) { registerSensor( new HardwareSensor(list[i]) ); switch (list[i].type) { + case SENSOR_TYPE_ACCELEROMETER: + hasAccel = true; + break; + case SENSOR_TYPE_MAGNETIC_FIELD: + hasMag = true; + break; case SENSOR_TYPE_ORIENTATION: orientationIndex = i; break; @@ -117,7 +123,7 @@ void SensorService::onFirstRef() // build the sensor list returned to users mUserSensorList = mSensorList; - if (hasGyro) { + if (hasGyro && hasAccel && hasMag) { Sensor aSensor; // Add Android virtual sensors if they're not already |