Використовуємо в додатку фізичні кнопки пристрою

Використовуємо в додатку фізичні кнопки пристрою

У багатьох додатках розробники застосовують для різних завдань дії фізичних кнопок пристрою. Наприклад, в улюбленій усіма читалки Cool Reader кнопками гучності "Вгору / Вниз" можна перемикати сторінки книги. Це дуже навіть зручно і прикольно, плюс до того, що вам самим вирішувати, яким функціоналом оснастити свій додаток і яку роль в ньому гратимуть фізичні кнопки Android апарату. Тому сьогодні ми навчимося програмно обробляти натискання по фізичним кнопок пристрою, надаючи їм бажаний функціонал. Обробка натискань всіх фізичних кнопок апарату відбувається за допомогою методу onKeyDown (). використовуючи в ньому команду KeyEvent. за допомогою якої відбувається звернення до бажаної кнопці.

Якщо перерахувати основні кнопки сучасного Android пристрою, а їх кількість стрімко зменшується, то можна виділити такі основні кнопки і код для звернення до них:

- кнопка харчування - викликається за допомогою команди KEYCODE_POWER. служить для включення / вимикання перезавантаження пристрою, її використання в додатках не відбувається, тому, що вона використовується системою тільки для зазначених виробником завдань (також як і кнопка Home - KEYCODE_HOME);

- кнопка "Назад" - служить для повернення до попереднього екрана - викликається командою KEYCODE_BACK;

- кнопка "Меню" - показує меню для діючої activity, викликається командою KEYCODE_MENU;

- кнопка "Пошук" - викликає вікно пошуку (зараз її майже ніде не побачиш), команда KEYCODE_SEARCH;

- гучність "Вгору / Вниз" - за замовчуванням регулює гучність пристрою в медіа, системних звуках, гучності виклику і т.д. може бути застосована і для абсолютно інших цілей (згадуємо Cool Reader), для роботи з цими клавішами служать команди KEYCODE_VOLUME_UP. KEYCODE_VOLUME_DOWN;

- кнопка гарнітури - KEYCODE_HEADSETHOOK. як правило служить для запуску і паузи відтворення музики в плеєрі.

У нашому уроці ми створимо додаток, запустимо його, і коли ми будемо натискати по фізичним кнопках апарату, буде з'являтися Toast повідомлення з назвою натиснутою кнопочки. Не буду використовувати занадто багато кнопок, на моїх апаратах їх зовсім не багато, але достатньо, щоб зрозуміти принцип роботи з ними.

Створюємо новий проект, вибираємо Blank Activity. У файлі activity_main.xml заради пристойності створимо своєму Android з додатком такий сякий інтерфейс, що складається з одного текстового поля:

У файлі java класу ми створимо метод для роботи з фізичними кнопками пристрої onKeyDown. і за допомогою команди KeyEvent звернемося до кнопок гучності, камери і кнопки "Назад". При натисканні на будь-яку з цих клавіш буде з'являтися Toast повідомлення з назвою натиснутою кнопки. Все це виконується досить просто. Відкриваємо файл MainActivity.java і додаємо наступний код:

Як бачите, абсолютно нічого складного, але використовуючи цей функціонал, можна істотно поліпшити свій додаток.

Варто відзначити, що на зміну старій команді KEYCODE_BACK роботи з кнопкою "Назад" прийшов спеціальний метод onBackPressed (). з яким працювати ще простіше, його можна використовувати в будь-якому шматку коду без виклику методу onKeyDown () і його реалізація проста як двічі два.

Ну ось і все на цей раз, удачі в навчаннях!