Как обнаружить, когда экран идет?

Как упомянуто в предыдущем вопросе, я испытываю затруднения при прерывании всех android.intent.action.SCREEN_ON события без долговечного Service (нежелательный).

Я могу работать вокруг потребности, если я могу просто разработать, когда экран идет в любой момент времени, в Service.

Может кто-либо предлагающий вызов метода, который возвратил бы эту информацию? 1.5 вверх.

5
задан Elltz 8 May 2015 в 01:20
поделиться

3 ответа

Система намеренно не позволяет приложениям получать широковещательные сообщения ACTION_SCREEN_ON и ACTION_SCREEN_OFF в своем манифесте, потому что мы очень не хочется запускать кучу приложений для включения или выключения экрана. Это происходит постоянно и должно происходить как можно быстрее.

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

1
ответ дан 13 December 2019 в 05:32
поделиться

Может ли системная широковещательная рассылка ACTION_USER_PRESENT помочь?

3
ответ дан 13 December 2019 в 05:32
поделиться

Если ваш код выполняется, то очень велика вероятность, что экран включен. Главным исключением будет, если ваш код разбужен через AlarmManager.

Было бы неплохо, если бы ACTION_SCREEN_ON был липкой трансляцией, но, похоже, это не так.

Если вы можете работать с Android 2.1 и новее, PowerManager теперь имеет метод isScreenOn(). Хорошая новость заключается в том, что он доступен. Плохая новость: поскольку он был добавлен туда, маловероятно, что существует какой-либо другой способ легко определить его. И быстрый осмотр исходного кода не дает особой надежды на то, что вы сможете взломать путь к информации в более ранних SDK.

3
ответ дан 13 December 2019 в 05:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: