Загорается экран при получении уведомления Android

У меня есть служба, работающая для моего приложения, чтобы отправлять уведомления каждый час. Это работает нормально, так как я слышал звук и вибрацию каждый час из-за моего уведомления, но я также хочу, чтобы мое уведомление также освещало мой экран. Но я не могу включить экран, когда появляется уведомление.


person Pirate    schedule 09.03.2012    source источник


Ответы (2)


Есть мое решение:

createNotification(); //your implementation
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
boolean isScreenOn = Build.VERSION.SDK_INT >= 20 ? pm.isInteractive() : pm.isScreenOn(); // check if screen is on
if (!isScreenOn) {
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "myApp:notificationLock");
    wl.acquire(3000); //set your time in milliseconds
}

Дополнительные сведения см. в PowerManager.

person Jan Moravec    schedule 11.04.2019
comment
Нужно ли снимать wakelock как wl.release() ? - person xaif; 02.05.2020

person    schedule
comment
FULL_WAKE_LOCK устарел. Что использовать вместо этого? - person orium; 21.10.2014
comment
У меня тот же вопрос, что и у Ориума. - person user590849; 30.04.2015
comment
вам нужно разрешение WakeLock в манифесте: ‹uses-permission android:name=android.permission.WAKE_LOCK /› - person javad; 01.07.2015
comment
isScreenOn() устарела на уровне API 20. Вместо этого используйте isInteractive(). - person FCA; 14.05.2016
comment
Спасибо. Вы решили мою проблему с блокировкой пробуждения. Теперь мое приложение правильно просыпается для уведомлений. - person BK19; 29.01.2018
comment
FULL_WAKE_LOCK устарел. Вместо этого используйте PARTIAL_WAKE_LOCK. - person Kai Wang; 20.04.2018
comment
@KaiWang Должны ли мы использовать PARTIAL_WAKE_LOCK как для экземпляров wl, так и для экземпляров wl_cpu? - person SametSahin; 30.09.2019
comment
@SametSahin Я не уверен в этом. Извини чувак :) - person Kai Wang; 02.10.2019
comment
PARTIAL_WAKE_LOCK не будет разбудить устройство самостоятельно, и состояние документов Android его нельзя использовать с ACQUIRE_CAUSES_WAKEUP - person The Fluffy Robot; 01.01.2020