Как упомянуто в предыдущем вопросе, я испытываю затруднения при прерывании всех android.intent.action.SCREEN_ON
события без долговечного Service
(нежелательный).
Я могу работать вокруг потребности, если я могу просто разработать, когда экран идет в любой момент времени, в Service
.
Может кто-либо предлагающий вызов метода, который возвратил бы эту информацию? 1.5 вверх.
Система намеренно не позволяет приложениям получать широковещательные сообщения ACTION_SCREEN_ON
и ACTION_SCREEN_OFF
в своем манифесте, потому что мы очень не хочется запускать кучу приложений для включения или выключения экрана. Это происходит постоянно и должно происходить как можно быстрее.
К сожалению, как уже указывалось, нет способа немедленно проверить, включен ли экран.
Может ли системная широковещательная рассылка ACTION_USER_PRESENT помочь?
Если ваш код выполняется, то очень велика вероятность, что экран включен. Главным исключением будет, если ваш код разбужен через AlarmManager
.
Было бы неплохо, если бы ACTION_SCREEN_ON
был липкой трансляцией, но, похоже, это не так.
Если вы можете работать с Android 2.1 и новее, PowerManager
теперь имеет метод isScreenOn()
. Хорошая новость заключается в том, что он доступен. Плохая новость: поскольку он был добавлен туда, маловероятно, что существует какой-либо другой способ легко определить его. И быстрый осмотр исходного кода не дает особой надежды на то, что вы сможете взломать путь к информации в более ранних SDK.