Работя върху приложение за Android, което изключва екрана на устройството, когато стойността на светлинния сензор е под прагова стойност и включва екрана отново, когато стойността на светлинния сензор се повиши над праговата стойност. Тази прагова стойност се определя от потребителя чрез еднократно калибриране. Всичко работи чудесно, екранът се включва и изключва, когато трябва и се справих с постоянните колебания в стойностите на сензора за светлина, така че екранът да не се включва и изключва произволно.
Проблемът, с който се сблъсквам, е, че когато се натисне бутонът за захранване, събитието „onSensorChanged“ на сензора за светлина се задейства по някаква причина. Това означава, че ако потребителят натисне бутона за захранване, за да изключи екрана, той автоматично се включва отново, ако е на правилното осветление.
Решението, за което се сетих, беше да запазя флагова променлива, която няма да позволи на кода в моята услуга да се изпълни, ако бутонът за захранване е натиснат, но проблемът там е, че Android не ми позволява да открия натискане на бутон за захранване от услуга .
Има ли друго възможно (може би по-логично) решение на този проблем?
Не мисля, че би било полезно да публикувам кода, но ме уведомете, ако имате нужда да го публикувам.
Благодаря.