Пройдемося по коду. Оголошуємо необхідні змінні. Для програвання звуку клацання кнопки використовуємо клас SoundPool - він підходить для випадку, коли вам необхідно багаторазове відтворення невеликих файлів. Далі оголошуємо змінну класу Camera, який нам потрібен для роботи зі спалахом. Камера потрібна з пакета android.hardware. Android Studio позначає клас Camera і клас Parameters як deprecated - це пов'язано з тим, що в API 21 додані нові класи для роботи з камерою - пакет Camera2. Але він підтримується тільки пристроями з android 5 і вище. А клас Camera підтримується і старими, і новими пристроями, тому будемо використовувати його.
Також нам потрібен екранний компонент Switch і логічна змінна для зберігання стану спалаху. У методі onCreate знаходимо перемикач по ID, встановлюємо його в положення «вкл». Також присвоюємо йому слухач. Тут пізніше пропишемо виклик методів включення і виключення спалаху.
Оскільки не у всіх пристроях є спалах, потрібно при старті додатка перевіряти її наявність і оповіщати користувача при неможливості використання ліхтарика. Для оповіщення служить метод:
- гучність правого каналу
- кількість повторів
- швидкість відтворення (0.5 - 2)
Тепер метод виключення спалаху. Тут все простіше: