Merge "Check for the presence of accel and magnetometer sensors before adding AOSP fusion sensors." into mnc-dev

This commit is contained in:
Chenjie Luo 2015-07-22 06:26:27 +00:00 committed by Android (Google) Code Review
commit 99426810e4

View File

@ -84,7 +84,7 @@ void SensorService::onFirstRef()
ssize_t count = dev.getSensorList(&list); ssize_t count = dev.getSensorList(&list);
if (count > 0) { if (count > 0) {
ssize_t orientationIndex = -1; ssize_t orientationIndex = -1;
bool hasGyro = false; bool hasGyro = false, hasAccel = false, hasMag = false;
uint32_t virtualSensorsNeeds = uint32_t virtualSensorsNeeds =
(1<<SENSOR_TYPE_GRAVITY) | (1<<SENSOR_TYPE_GRAVITY) |
(1<<SENSOR_TYPE_LINEAR_ACCELERATION) | (1<<SENSOR_TYPE_LINEAR_ACCELERATION) |
@ -94,6 +94,12 @@ void SensorService::onFirstRef()
for (ssize_t i=0 ; i<count ; i++) { for (ssize_t i=0 ; i<count ; i++) {
registerSensor( new HardwareSensor(list[i]) ); registerSensor( new HardwareSensor(list[i]) );
switch (list[i].type) { switch (list[i].type) {
case SENSOR_TYPE_ACCELEROMETER:
hasAccel = true;
break;
case SENSOR_TYPE_MAGNETIC_FIELD:
hasMag = true;
break;
case SENSOR_TYPE_ORIENTATION: case SENSOR_TYPE_ORIENTATION:
orientationIndex = i; orientationIndex = i;
break; break;
@ -117,7 +123,7 @@ void SensorService::onFirstRef()
// build the sensor list returned to users // build the sensor list returned to users
mUserSensorList = mSensorList; mUserSensorList = mSensorList;
if (hasGyro) { if (hasGyro && hasAccel && hasMag) {
Sensor aSensor; Sensor aSensor;
// Add Android virtual sensors if they're not already // Add Android virtual sensors if they're not already