Уведомление Android о включении / выключении экрана - PullRequest
16 голосов
/ 17 ноября 2010

Я смотрю, есть ли системное уведомление, которое я могу прослушать, чтобы увидеть, когда экран выключается / включается.Какие-нибудь мысли?Нечто подобное, когда сеть подключается / отключается.

Ответы [ 3 ]

24 голосов
/ 26 сентября 2013

Самый простой способ - указать это в вашем MyApplication.onCreate() методе:

IntentFilter intentFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
            Log.d(TAG, Intent.ACTION_SCREEN_OFF);
        } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
            Log.d(TAG, Intent.ACTION_SCREEN_ON);
        }
    }
}, intentFilter);
11 голосов
/ 17 ноября 2010

Система будет транслировать при включении и выключении экрана -

Чтобы прослушать их, вы можете создать BroadcastReceiver, который прослушивает события:

Intent.ACTION_SCREEN_OFF Intent.ACTION_SCREEN_ON

Они перечислены в документации здесь :

Кроме того, есть учебник по реагированию на эти события, который может оказаться полезным.

0 голосов
/ 25 февраля 2019

Для тех, кто ищет код, эквивалентный Kotlin, наверх ответ , это сработало для меня:

val intentFilter = IntentFilter(Intent.ACTION_SCREEN_ON)
intentFilter.addAction(Intent.ACTION_SCREEN_OFF)
registerReceiver(object: BroadcastReceiver() {
    override fun onReceive(context:Context, intent:Intent) {
        if (intent.action == Intent.ACTION_SCREEN_OFF) {
            Log.d(TAG, Intent.ACTION_SCREEN_OFF)
        }
        else if (intent.action == Intent.ACTION_SCREEN_ON) {
             Log.d(TAG, Intent.ACTION_SCREEN_ON)
        }
    }
}, intentFilter)

(автоматическое преобразование Kotlin в Android Studio не сработалопоэтому я быстро переписал фрагмент - надеюсь, это сэкономит кому-то еще эту минуту или две)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...