Android OnSensorChanged() not working when screen lock is on

Some of the Android OS versions have a bug which stops the sensors such as the accelerometer recording when the screen lock is on.

The bug has been submitted but has not been fixed in all instances

http://code.google.com/p/android/issues/detail?id=3708

http://code.google.com/p/android/issues/detail?id=11028

Below is a list of Phones and OS versions the do and don’t have the bug + some are reported to be intermittent.

Bug No Bug Intermittent
Motorola Milestone – 2.1 Google Nexus One – 2.2 Google Nexus One – 2.2
Nexus One – 2.1 T-Mobile G1 – 1.6
HTC Desire – 2.2 Google ION – 1.6
HTC EVO 4G – 2.2  
Motorola Droid – 2.2  
HTC Eris – 2.2  
Droid Incredible – 2.2  
HTC Legend 2.1
HTC Wildfire 2.2

Update: There are a couple of workarounds that i have found

The first works for all phones but is a drain on the battery and involves keeping the screen on all the time. It changes the timeout of the screen to a higher number:

http://stackoverflow.com/questions/1114270/android-screen-timeout

The second seems to only work on some phones such as the Milestone and Droid which registers the sensor, then un-registers the sensor when the screen is off and re-registers the sensor. Long winded but if it works…

http://stackoverflow.com/questions/2143102/accelerometer-stops-delivering-samples-when-the-screen-is-off-on-droid-nexus-one

If you enjoyed this post, make sure you subscribe to my RSS feed!

你可能感兴趣的:(Android OnSensorChanged() not working when screen lock is on)