Я работаю над приложением для Android, которое отключает экран устройства, когда значение датчика освещенности ниже порогового значения, и снова включает экран, когда значение датчика освещенности превышает пороговое значение. Это пороговое значение определяется пользователем посредством однократной калибровки. Все работает отлично, экран включается и выключается, когда положено, и я справился с постоянными колебаниями значений датчика освещенности, чтобы экран не включался и не выключался случайным образом.
Проблема, с которой я сталкиваюсь, заключается в том, что при нажатии кнопки питания по какой-то причине запускается событие «onSensorChanged» датчика освещенности. Это означает, что если пользователь нажмет кнопку питания, чтобы выключить экран, он автоматически снова включится, если он находится в правильном освещении.
Решение, о котором я подумал, состояло в том, чтобы сохранить переменную флага, которая не позволит коду в моей службе выполняться, если кнопка питания была нажата, но проблема в том, что Android не позволяет мне обнаруживать нажатие кнопки питания из службы .
Есть ли другое возможное (возможно, более логичное) решение этой проблемы?
Я не думаю, что было бы полезно опубликовать код, но дайте мне знать, если вам нужно, чтобы я его опубликовал.
Спасибо.