Благодаря новому разрешению, реализованному в Android Oreo, системные приложения теперь могут настраивать прослушиватели для обнаружения длительных нажатий клавиш громкости.
Энтузиасты Android уже давно занимаются добавлением дополнительных функций к различным аппаратным и программным кнопкам на наших устройствах. Большинство людей знают о таких приложениях, как Сопоставитель кнопок от признанного разработчика XDA вспышка2, и мы даже говорили о другие решения для переназначения назад, когда был выпущен Galaxy S8. Хотя эти решения обрабатывали эти действия определенным образом, Google планирует реализовать в Android Oreo прослушиватель длительного нажатия клавиш громкости. Это означает, что потенциально приложения в будущем смогут реагировать на долгое нажатие клавиши громкости, даже когда экран отключено, что можно использовать для переноса часто запрашиваемой функции из пользовательских ПЗУ — управления музыкальной дорожкой с помощью клавиши громкости. прессы.
Мы хотим упомянуть об этом
эта особенность на самом деле не включен в доступной нам прямо сейчас сборке, ориентированной на пользователя. Однако его поддержка имеется, о чем свидетельствует найденный нами коммит, а это означает, что OEM-производитель может включить ее для вашего конкретного устройства. Как уже упоминалось, традиционные приложения переназначения работают, определяя, было ли отправлено событие KeyEvent (при длительном нажатии эти приложения измеряют время между событие нажатия клавиши и нажатия клавиши, тогда как при двойном нажатии они измеряют время между нажатиями), но эти KeyEvents отправляются только тогда, когда экран на. Более того, они также обычно требуют использования службы специальных возможностей, что может отрицательно сказаться на производительности.Типичное решение по переназначению кнопок можно рассматривать как обходной путь, который можно использовать для включения или выключения фонарика, открытия приложения, открытия панели уведомлений и т. д. Однако то, что Google реализовал в Android Oreo, идет на шаг дальше, позволяя системным приложениям самим настраивать эти прослушиватели длительного нажатия кнопки громкости. Это может позволить пользователю активировать что-то внутри самого приложения, как только платформа обнаружит, что кнопка громкости удерживается нажатой в течение нескольких секунд.
Google включил эту поддержку в Android Oreo: она будет работать только для «привилегированных» (то есть предустановленных системных) приложений «из коробки». OEM-производителю просто нужно разрешить привилегированному приложению иметь android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER
разрешение чтобы настроить слушателя. Однако мы смогли предоставить подобные разрешения с помощью команд ADB, поэтому вполне возможно, что те из нас, кто в курсе, смогут вручную установить их и для сторонних приложений.