Just wanted to share a tip I found while investigating severe battery drain on my 2013 Moto X.
Over the past few weeks, the battery life on my Moto X was horrible - I could get maybe 10 hours off the charger, with minimal screen-on time, like well under 90 minutes.
I noticed from the battery graph that something was keeping the phone awake all of the time. I looked into using a wakelock detector app, but every one I found seemed to require root, which I don't have (4.4.4 on VZW).
I finally found this thread on Reddit, that showed how to get wakelocks through adb shell, like this:
adb shell dumpsys power | grep -i partial_wake_lock
Running that in a loop revealed the culprit:
$ while true ; do adb shell dumpsys power | grep -i wake_lock; sleep 1; done
PARTIAL_WAKE_LOCK 'handleMediaEvent' (uid=1000, pid=909, ws=null)
PARTIAL_WAKE_LOCK 'handleMediaEvent' (uid=1000, pid=909, ws=null)
PARTIAL_WAKE_LOCK 'handleMediaEvent' (uid=1000, pid=909, ws=null)
PARTIAL_WAKE_LOCK 'handleMediaEvent' (uid=1000, pid=909, ws=null)
PARTIAL_WAKE_LOCK 'handleMediaEvent' (uid=1000, pid=909, ws=null)
PARTIAL_WAKE_LOCK 'handleMediaEvent' (uid=1000, pid=909, ws=null)
PARTIAL_WAKE_LOCK 'handleMediaEvent' (uid=1000, pid=909, ws=null)
...
I googled "handleMediaEvent" and found this XDA thread that suggested that it was a problem related to Bluetooth playback controls, and that power cycle was the only way to get things back to normal: http://forum.xda-developers.com/showthread.php?t=2483630
Sure enough, I power-cycled and now my phone is sleeping when it should.
Hope this helps someone else - it sure helped me. Thanks, internets!
Over the past few weeks, the battery life on my Moto X was horrible - I could get maybe 10 hours off the charger, with minimal screen-on time, like well under 90 minutes.
I noticed from the battery graph that something was keeping the phone awake all of the time. I looked into using a wakelock detector app, but every one I found seemed to require root, which I don't have (4.4.4 on VZW).
I finally found this thread on Reddit, that showed how to get wakelocks through adb shell, like this:
adb shell dumpsys power | grep -i partial_wake_lock
Running that in a loop revealed the culprit:
$ while true ; do adb shell dumpsys power | grep -i wake_lock; sleep 1; done
PARTIAL_WAKE_LOCK 'handleMediaEvent' (uid=1000, pid=909, ws=null)
PARTIAL_WAKE_LOCK 'handleMediaEvent' (uid=1000, pid=909, ws=null)
PARTIAL_WAKE_LOCK 'handleMediaEvent' (uid=1000, pid=909, ws=null)
PARTIAL_WAKE_LOCK 'handleMediaEvent' (uid=1000, pid=909, ws=null)
PARTIAL_WAKE_LOCK 'handleMediaEvent' (uid=1000, pid=909, ws=null)
PARTIAL_WAKE_LOCK 'handleMediaEvent' (uid=1000, pid=909, ws=null)
PARTIAL_WAKE_LOCK 'handleMediaEvent' (uid=1000, pid=909, ws=null)
...
I googled "handleMediaEvent" and found this XDA thread that suggested that it was a problem related to Bluetooth playback controls, and that power cycle was the only way to get things back to normal: http://forum.xda-developers.com/showthread.php?t=2483630
Sure enough, I power-cycled and now my phone is sleeping when it should.
Hope this helps someone else - it sure helped me. Thanks, internets!
Last edited: