A WakeLock
не так уж сложно, просто убедитесь, что оно не удерживается при вызове acquire()
, и убедитесь, что удерживается при вызове release()
.Вы также хотите убедиться, что у вас есть разрешение android.permission.WAKE_LOCK
, определенное в вашем файле манифеста.
Если вы хотите приобрести WakeLock только при подключенном телефоне, вы можете зарегистрировать BroadcastReceiver
, который отслеживаетandroid.intent.action.ACTION_POWER_CONNECTED
и android.intent.action.ACTION_POWER_DISCONNECTED
намерения.Я сам ими не пользовался, поэтому может потребоваться какое-то разрешение на применение, прежде чем эти намерения сработают.