Android: какие события активируют устройство
Я написал приложение для Android, и теперь есть проблема.
Если мое приложение работает, и я выключаю устройство, то иногда оно просто просыпается примерно через 8 секунд, а затем включается экран и снова отображается мое приложение.
Мой вопрос: какие события или ограничения обработки (например, обработка широковещательных намерений) пробуждают устройство?
Изменить: Будет ли сигнал тревоги с RCT_WAKEUP включить экран устройства?
Заранее спасибо!
1 ответ
AlarmManager на самом деле не будет включать экран для вас. Вы можете использовать вместо этого wakelock.
PowerManager.WakeLock wakelock;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.........
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakelock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "AlarmReceiver");
wakelock.acquire();
}
Когда вы закончите с активностью, просто убедитесь, что вы отключили wakelock:
@Override
protected void onStop() {
super.onStop();
wakelock.release();
}
Вам также необходимо добавить разрешение блокировки пробуждения в файл манифеста:
<uses-permission android:name="android.permission.WAKE_LOCK"/>
Кроме того, если вы не хотите включать это дополнительное разрешение, вы можете использовать следующий код в своей деятельности вместо использования wakelock:
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);