Простое и бесплатное приложение для фотографирования с помощью кнопок изменения громкости без разблокировки телефона (с выключенным экраном).
Несмотря на то, что времена кнопочных телефонов ушли в прошлое и для многих функций телефона (например, набора номера) прекрасно подходит сенсорный экран, иногда он все-таки не так удобен как физические кнопки.
Идея
Идея приложения возникла на горнолыжном склоне, когда, для того чтобы сфотографировать друзей, мне пришлось: снимать перчатку, разблокировать телефон, включать функцию фотографирования и уже замёрзшим пальцем пытаться попасть в иконку «Сделать фото».
Первым делом я попробовал найти подходящее приложение в Google Play, и как это ни странно, ничего подобного не нашлось. Приложения, которые используют кнопки громкости для фотографирования, есть, но все они требуют разблокировки телефона и предварительного запуска.
Реализация
Проведя исследование, выяснилось, что телефон в заблокированном режиме достаточно ограничен в возможностях. И единственный способ передать ему сигнал, это отловить комбинацию нажатий на кнопки громкости.
Таким образом, функционал вырисовывался сам собой: двойное нажатие на любую из кнопок громкости приводит к созданию новой фотографии.
Перехват события нажатия кнопки при выключенном экране
Главная сложность в создании приложения заключалась в перехвате события нажатия кнопок при заблокированном телефоне. На решение проблемы натолкнули музыкальные проигрыватели, которые позволяют перематывать треки двойными нажатиями клавиш. Соответственно при активации приложения запускается сигнал, изменение громкости которого и отслеживается в приложении. Конечно, это порождает ряд неудобств, но по-другому, похоже, реализовать данный механизм нельзя.
Получив первые отзывы от пользователей в приложение было добавлено: оповещение в область уведомления о новых снимках, возможность переключать из альбомного режима в портретный, возможность отключать звук и вибрацию при создании снимка. Чуть позже были добавлены добавлены все остальные стандартные для мобильных камер настройки.
Оставалась проблема, что когда приложение запущенно оно достаточно сильно «ест» заряд батареи. Для минимизации этого неприятного процесса, в программу была добавлена функция «Активации» и «Деактивации» и небольшой виджет для удобства её использования.
На текущий момент приложение работает на большинстве телефонов, но, к сожалению, ещё есть модели, на которых данный механизм реализовать не удалось. По этому если решите приобрести платную версию обязательно сначала проверьте работу бесплатной версии приложения.
Буду очень признателен за оценки в Google Play и ваши предложения по расширению функционала.