Sensor related changes for NDK.
i) ASensorManager_getDefaultSensor returns a wake-up/non wake-up sensor depending on the type. ii) Add ASensor_isWakeUpSensor and ASensorManager_getDefaultSensorEx methods. Bug : 16399898 Change-Id: I1a86fb8d9de23039fdf41679d1487e1cd761a9d0
This commit is contained in:
parent
a02e9484be
commit
b37ba399c1
@ -210,10 +210,17 @@ int ASensorManager_getSensorList(ASensorManager* manager, ASensorList* list);
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns the default sensor for the given type, or NULL if no sensor
|
* Returns the default sensor for the given type, or NULL if no sensor
|
||||||
* of that type exist.
|
* of that type exists.
|
||||||
*/
|
*/
|
||||||
ASensor const* ASensorManager_getDefaultSensor(ASensorManager* manager, int type);
|
ASensor const* ASensorManager_getDefaultSensor(ASensorManager* manager, int type);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns the default sensor with the given type and wakeUp properties or NULL if no sensor
|
||||||
|
* of this type and wakeUp properties exists.
|
||||||
|
*/
|
||||||
|
ASensor const* ASensorManager_getDefaultSensorEx(ASensorManager* manager, int type,
|
||||||
|
bool wakeUp);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Creates a new sensor event queue and associate it with a looper.
|
* Creates a new sensor event queue and associate it with a looper.
|
||||||
*/
|
*/
|
||||||
@ -321,6 +328,11 @@ const char* ASensor_getStringType(ASensor const* sensor);
|
|||||||
*/
|
*/
|
||||||
int ASensor_getReportingMode(ASensor const* sensor);
|
int ASensor_getReportingMode(ASensor const* sensor);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns true if this is a wake up sensor, false otherwise.
|
||||||
|
*/
|
||||||
|
bool ASensor_isWakeUpSensor(ASensor const* sensor);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@ -116,14 +116,25 @@ Sensor const* SensorManager::getDefaultSensor(int type)
|
|||||||
{
|
{
|
||||||
Mutex::Autolock _l(mLock);
|
Mutex::Autolock _l(mLock);
|
||||||
if (assertStateLocked() == NO_ERROR) {
|
if (assertStateLocked() == NO_ERROR) {
|
||||||
|
bool wakeUpSensor = false;
|
||||||
|
// For the following sensor types, return a wake-up sensor. These types are by default
|
||||||
|
// defined as wake-up sensors. For the rest of the sensor types defined in sensors.h return
|
||||||
|
// a non_wake-up version.
|
||||||
|
if (type == SENSOR_TYPE_PROXIMITY || type == SENSOR_TYPE_SIGNIFICANT_MOTION ||
|
||||||
|
type == SENSOR_TYPE_TILT_DETECTOR || type == SENSOR_TYPE_WAKE_GESTURE ||
|
||||||
|
type == SENSOR_TYPE_GLANCE_GESTURE || type == SENSOR_TYPE_PICK_UP_GESTURE) {
|
||||||
|
wakeUpSensor = true;
|
||||||
|
}
|
||||||
// For now we just return the first sensor of that type we find.
|
// For now we just return the first sensor of that type we find.
|
||||||
// in the future it will make sense to let the SensorService make
|
// in the future it will make sense to let the SensorService make
|
||||||
// that decision.
|
// that decision.
|
||||||
for (size_t i=0 ; i<mSensors.size() ; i++) {
|
for (size_t i=0 ; i<mSensors.size() ; i++) {
|
||||||
if (mSensorList[i]->getType() == type)
|
if (mSensorList[i]->getType() == type &&
|
||||||
|
mSensorList[i]->isWakeUpSensor() == wakeUpSensor) {
|
||||||
return mSensorList[i];
|
return mSensorList[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user