Merge "Throw Exception only if sensors are in capped set." into sc-dev
This commit is contained in:
@@ -571,7 +571,9 @@ public class SystemSensorManager extends SensorManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int sensorHandle = (sensor == null) ? -1 : sensor.getHandle();
|
int sensorHandle = (sensor == null) ? -1 : sensor.getHandle();
|
||||||
if (rate > CAPPED_SAMPLING_RATE_LEVEL
|
if (sensor != null
|
||||||
|
&& isSensorInCappedSet(sensor.getType())
|
||||||
|
&& rate > CAPPED_SAMPLING_RATE_LEVEL
|
||||||
&& mIsPackageDebuggable
|
&& mIsPackageDebuggable
|
||||||
&& !mHasHighSamplingRateSensorsPermission
|
&& !mHasHighSamplingRateSensorsPermission
|
||||||
&& Compatibility.isChangeEnabled(CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION)) {
|
&& Compatibility.isChangeEnabled(CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION)) {
|
||||||
@@ -782,7 +784,8 @@ public class SystemSensorManager extends SensorManager {
|
|||||||
Sensor sensor, int rateUs, int maxBatchReportLatencyUs) {
|
Sensor sensor, int rateUs, int maxBatchReportLatencyUs) {
|
||||||
if (mNativeSensorEventQueue == 0) throw new NullPointerException();
|
if (mNativeSensorEventQueue == 0) throw new NullPointerException();
|
||||||
if (sensor == null) throw new NullPointerException();
|
if (sensor == null) throw new NullPointerException();
|
||||||
if (rateUs < CAPPED_SAMPLING_PERIOD_US
|
if (mManager.isSensorInCappedSet(sensor.getType())
|
||||||
|
&& rateUs < CAPPED_SAMPLING_PERIOD_US
|
||||||
&& mManager.mIsPackageDebuggable
|
&& mManager.mIsPackageDebuggable
|
||||||
&& !mManager.mHasHighSamplingRateSensorsPermission
|
&& !mManager.mHasHighSamplingRateSensorsPermission
|
||||||
&& Compatibility.isChangeEnabled(CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION)) {
|
&& Compatibility.isChangeEnabled(CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION)) {
|
||||||
@@ -1015,4 +1018,20 @@ public class SystemSensorManager extends SensorManager {
|
|||||||
mNativeInstance, handle,
|
mNativeInstance, handle,
|
||||||
parameter.type, parameter.floatValues, parameter.intValues) == 0;
|
parameter.type, parameter.floatValues, parameter.intValues) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if a sensor should be capped according to HIGH_SAMPLING_RATE_SENSORS
|
||||||
|
* permission.
|
||||||
|
*
|
||||||
|
* This needs to be kept in sync with the list defined on the native side
|
||||||
|
* in frameworks/native/services/sensorservice/SensorService.cpp
|
||||||
|
*/
|
||||||
|
private boolean isSensorInCappedSet(int sensorType) {
|
||||||
|
return (sensorType == Sensor.TYPE_ACCELEROMETER
|
||||||
|
|| sensorType == Sensor.TYPE_ACCELEROMETER_UNCALIBRATED
|
||||||
|
|| sensorType == Sensor.TYPE_GYROSCOPE
|
||||||
|
|| sensorType == Sensor.TYPE_GYROSCOPE_UNCALIBRATED
|
||||||
|
|| sensorType == Sensor.TYPE_MAGNETIC_FIELD
|
||||||
|
|| sensorType == Sensor.TYPE_MAGNETIC_FIELD_UNCALIBRATED);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user