diff options
Diffstat (limited to 'services/java/com/android')
-rw-r--r-- | services/java/com/android/server/PowerManagerService.java | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java index aad576f..f3a91e7 100644 --- a/services/java/com/android/server/PowerManagerService.java +++ b/services/java/com/android/server/PowerManagerService.java @@ -2273,15 +2273,27 @@ class PowerManagerService extends IPowerManager.Stub if (mSpew) { Log.d(TAG, "enableProximityLockLocked"); } - mSensorManager.registerListener(mProximityListener, mProximitySensor, - SensorManager.SENSOR_DELAY_NORMAL); + // clear calling identity so sensor manager battery stats are accurate + long identity = Binder.clearCallingIdentity(); + try { + mSensorManager.registerListener(mProximityListener, mProximitySensor, + SensorManager.SENSOR_DELAY_NORMAL); + } finally { + Binder.restoreCallingIdentity(identity); + } } private void disableProximityLockLocked() { if (mSpew) { Log.d(TAG, "disableProximityLockLocked"); } - mSensorManager.unregisterListener(mProximityListener); + // clear calling identity so sensor manager battery stats are accurate + long identity = Binder.clearCallingIdentity(); + try { + mSensorManager.unregisterListener(mProximityListener); + } finally { + Binder.restoreCallingIdentity(identity); + } synchronized (mLocks) { if (mProximitySensorActive) { mProximitySensorActive = false; @@ -2296,12 +2308,18 @@ class PowerManagerService extends IPowerManager.Stub } if (mSensorManager != null && mLightSensorEnabled != enable) { mLightSensorEnabled = enable; - if (enable) { - mSensorManager.registerListener(mLightListener, mLightSensor, - SensorManager.SENSOR_DELAY_NORMAL); - } else { - mSensorManager.unregisterListener(mLightListener); - mHandler.removeCallbacks(mAutoBrightnessTask); + // clear calling identity so sensor manager battery stats are accurate + long identity = Binder.clearCallingIdentity(); + try { + if (enable) { + mSensorManager.registerListener(mLightListener, mLightSensor, + SensorManager.SENSOR_DELAY_NORMAL); + } else { + mSensorManager.unregisterListener(mLightListener); + mHandler.removeCallbacks(mAutoBrightnessTask); + } + } finally { + Binder.restoreCallingIdentity(identity); } } } |