Завдяки новому дозволу, реалізованому в Android Oreo, системні програми тепер можуть налаштовувати прослуховувачі для визначення тривалого натискання клавіш гучності.
Додавання додаткових функцій до різноманітних апаратних і програмних кнопок на наших пристроях — це те, чим ентузіасти Android займаються вже деякий час. Більшість людей знають про такі програми, як Кнопка Mapper від визнаного розробника XDA flar2, і ми навіть говорили про інші рішення для переналаштування був випущений Galaxy S8. Хоча ці рішення обробляли ці дії певним чином, Google, схоже, реалізує в Android Oreo прослуховувач для тривалого натискання клавіш гучності. Це означає, що потенційно програми в майбутньому зможуть реагувати на довгі натискання клавіші гучності навіть під час роботи з екраном вимкнено, що може бути використано для перенесення часто запитуваної функції з користувальницьких ПЗУ - керування музичними треками за допомогою клавіші гучності преси.
Ми хочемо це відзначити цю функцію фактично не ввімкнуто в призначеній для користувача збірці, яка доступна зараз. Проте його підтримка є, про що свідчить знайдений нами комміт, і це означає, що його може ввімкнути OEM для вашого конкретного пристрою. Як згадувалося, традиційні програми для перевідповідання працюють, виявляючи, чи було надіслано KeyEvent (при тривалому натисканні ці програми вимірюють час між подія натискання та підняття клавіші, тоді як подвійне натискання вимірює час між натисканнями), але ці події KeyEvent надсилаються лише тоді, коли екран на. Крім того, вони також зазвичай вимагають використання служби доступності, яка може негативно впливати на продуктивність.
Ваше типове рішення для переналаштування кнопок можна вважати обхідним шляхом для ввімкнення та вимкнення ліхтарика, відкриття програми, опускання панелі сповіщень тощо. Однак те, що Google реалізував в Android Oreo, робить цей крок далі, дозволяючи системним програмам самим налаштовувати ці прослуховувачі тривалих натискань кнопок гучності. Це може дозволити користувачеві запустити щось у самій програмі, коли платформа виявить, що кнопку гучності утримували натиснутою протягом кількох секунд.
Оскільки Google включив підтримку для цього в Android Oreo, це працюватиме лише для «привілейованих» (також попередньо встановлених системних) програм із коробки. OEM просто повинен дозволити привілейованій програмі мати android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER
дозвіл щоб налаштувати слухача. Однак ми змогли надати подібні дозволи за допомогою команд ADB, тож можливо, ті з нас, хто знає, можуть вручну встановити це також для програм сторонніх розробників.