Экранные клавиши андроид. Как отказаться от механических кнопок на Android

Когда мне в очередной раз достался смартфон с хардварными клавишами навигации, вообще без возможности их настройки или активации экранных клавиш в стиле Nexus, я решил, что с этим надо что-то делать. Покопавшись пару часов во внутренностях Android, я отключил надоедливую подсветку, поменял клавиши «Назад» и «Обзор» местами, а потом включил экранные кнопки и обрел покой.

Интро

Сразу оговорюсь: я большой поклонник идеи экранных клавиш навигации. Всех этих домиков, стрелочек и квадратиков, нарисованных прямо в нижней части экрана. Да, они отнимают какое-то там пространство (которое, впрочем, в большинстве случаев не особо и нужно), да, возможно они портят внешний вид приложений, но, черт возьми, они динамические.

Экранные кнопки навигации поворачиваются вместе с экраном, исчезают, когда они не нужны, меняют цвет и органично встраиваются в интерфейс домашнего экрана. Если отбросить саму идею бесполезности существования сразу трех кнопок (в конце концов, яблочники обходятся одной и не чувствуют себя обездоленными) и довольно-таки удобные системы навигации вроде PIE или «пузыря навигации MIUI», то экранные кнопки - это лучшее, что было придумано до сих пор.

Так вот. Почему-то мою замечательную, прекраснейшую идею о том, что лучше наэкранных кнопок нет ничего, не разделяют ну очень многие производители смартфонов. И даже не просто не разделяют, а не разделяют совершенно чудовищным способом, заставляя пользоваться смартфоном с сенсорными кнопками (ААА!), снабженными динамической подсветкой (ААА-2!) и кнопкой «Назад» с правой стороны экрана (ААА-3: решающий удар).

Ситуация неприемлемая до крайности, а учитывая, что добрый разработчик прошивки не предусмотрел никаких настроек для активации экранных клавиш и настроек для управления сенсорными кнопками, пришлось обойтись своими силами. Было два варианта дальнейших действий:

  • привести сенсорные кнопки к нужному состоянию, а именно отключить подсветку и перенести клавишу «Назад» на левую сторону (пусть она выглядит как «квадрат», так даже интересней);
  • отключить сенсорные кнопки полностью и активировать наэкранные кнопки.

Сторонние инструменты я не люблю, поэтому решение сделать все своими руками пришло само собой.

Способ номер один. Настраиваем сенсорные кнопки

Для начала попробуем отключить подсветку кнопок. Для этого нам нужен root, эмулятор терминала и каталог /sys в корне файловой системы. Именно такая комбинация. Мы имеем дело с ядром Linux, а в системах на его основе вся важная информация о железе, а также «тумблеры», им управляющие, обычно находятся в файловой системе sysfs, подключенной к каталогу /sys .

Собственно, sysfs - это даже не файловая система, точнее, она файловая, но оперирует так называемыми синтетическими файлами. А они не хранятся на диске, это своего рода интерфейс общения с драйверами: прочитал файл - получил данные о железке, записал - изменил какую-то настройку. А для записи как раз таки нужны права root.

Итак, получаем root, запускаем эмулятор терминала (а лучше ). И пишем следующее:

# su # cd /sys

# find -name \*button\* ./leds/button-backlight

Бинго! Это каталог /sys/class/leds/button-backlight . Переходим в него и смотрим, что внутри:

# cd /sys/class/leds/button-backlight # ls brightness device max_brightness power subsystem trigger uevent

Ставлю свой Nokia 3310 на то, что файл brightness - это текущая яркость кнопок, а max_brightness - максимальная. Проверим догадку, записав в первый файл значение 100 (ну типа 100%, хотя какая там шкала - неизвестно):

# echo 100 > brightness

Отлично, кнопки горят и даже не собираются тухнуть.

Момент истины - пишем в файл max_brightness значение 0:

# echo 0 > max_brightness

Кнопки погасли, навсегда, как и лампочка в моем подъезде вчера ночью.

Но так же, как лампочка, они снова могут загореться, если перезагрузиться. То есть команда действует только в текущем сеансе работы. К счастью, это не беда, мы поместим нашу команду в скрипт на карте памяти:

# mkdir /sdcard/boot # echo "echo 0 > /sys/class/leds/button-backlight/max_brightness" > /sdcard/boot

А его, в свою очередь, поставим в автозагрузку с помощью . Запускаем приложение, выбираем первые три галочки, c помощью опции Select folder выбираем каталог boot на карте памяти.


Ползадачи выполнено, осталось поменять местами кнопки «Назад» и «Обзор». Для этого необходимо изменить раскладку кнопок. В Android она лежит в нескольких файлах каталога /system/usr/keylayout/ . Их довольно много, но если отбросить файлы типа Vendor_2378_Product_100a.kl и qwerty.kl (они хранят раскладки полноценных Qwerty-клавиатур, которые Android поддерживает из коробки), то останется от силы пять штук.

Один из них как раз нам и нужен. Часто смартфоны используют файл ft5x06_ts.kl , специфичный для контроллера тачскрина FT5x06 (кнопки же сенсорные, правильно?), но в моем случае им оказался файл Vendor_2378_Product_100a.kl .

Если открыть этот файл, можно увидеть три искомые строки:

Key 158 BACK VIRTUAL key 139 MENU VIRTUAL key 102 HOME VIRTUAL

Остается только поменять числа 158 и 139 местами (для этого подходит любой файловый менеджер с поддержкой прав root). После перезагрузки новая раскладка начнет действовать.

Способ номер два. Экранные клавиши

Здесь все еще проще. В Android существует специальная отладочная переменная qemu.hw.mainkeys , которая позволяет контролировать видимость наэкранных клавиш навигации. Если она имеет значение 0, клавиши будут показаны на экране, 1 - обратный эффект.

Записываем переменную с нужным значением в файл /system/build.prop , и на этом все:

# su # mount -o remount,rw /system # cp /system/build.prop /system/build.prop.bak # echo qemu.hw.mainkeys=0 > /system/build.prop

Выводы

Вот на такие преступные шаги иногда приходится идти, чтобы сделать смартфон чуточку удобнее. Что касается меня, то я остановился на третьем варианте: «выключил» кнопки плюс установил LMT Launcher . Как мне кажется, это наиболее удобный способ управления.

Все и всегда ломается неожиданно. Уронить телефон на кафельный пол - досадная случайность, утопить его в ванне - банальность, которая встречается чаще, чем кажется поначалу. Статистика обращений в сервисные центры содержит немало жалоб на случайности из серии «оно упало и разбилось» еще чаще, чем утопления. При этом не стоит ожидать, что первое же падение унесет с собой сенсорную подложку или даже сам экран - в большинстве случаев последствия досадных случайностей выглядят не столь разрушительно. Среди прочего, это внезапная неработоспособность физических кнопок «назад, домой и меню». Если эта неприятность случилась и с вашим телефоном, а денег на ремонт пока что нет - не беспокойтесь. Есть сравнительно простое решение этой распространенной проблемы. Сейчас мы научим вас, как включить наэкранные кнопки на смартфоне, если физические больше не работают.

Чтобы все получилось, необходимо получить Root права. Доступ администратора к недрам системных файлов иногда заполучить сложно. Но с появлением приложений, получающих необходимый доступ за вас, больше не нужно читать многостраничные инструкции. Просто установите программу Kingo Root на ваш компьютер и подключите телефон. Единственное, что нужно сделать, пока проходит установка программы - в настройках телефона, разделе «безопасность» разрешить «Отладку по USB». Вот и все. Нажав большую кнопку Root в интерфейсе Kingo Root , активируем права администратора.

Шаг второй выглядит немного сложнее. Вам потребуется скачать из Google Play (или чуточку…альтернативных источников) программу Root Explorer. Установите ее на ваш смартфон. Запустите это приложение, найдите каталог System, а в нем - build.prop. Если такого файла в системном каталоге не видно, не беда. В верхнем углу программы есть троеточие - тапните по нему, чтобы открыть подменю. В настройках программы отметьте пункт «Показывать скрытые файлы». Пропажа тут же обнаружится.

В левом углу Root Explorer находится еще один нужный нам пункт - r/w. Коснитесь его один раз и подтвердите свой выбор. Это действие активирует возможность редактировать системные файлы. Теперь коснитесь build.prop и удерживайте палец на нем. Верхнее меню изменится и из выпадающего списка (во все том же троеточии) вы найдете подпункт «открыть в текстовом редакторе».

Пролистайте открытый файл до самого низа - все эти длинные списки настроек пока не нужны. В самом низу добавьте строку qemu.hw.mainkeys=0. Сохраните файл и перезагрузите телефон.

Готово, в самом низу экрана появились три наэкранные кнопки - аналогичные тем, что вы можете увидеть на экране любого планшета. А после ремонта физических кнопок виртуальные вполне получится скрыть обратно, заменив строку qemu.hw.mainkeys=0 на qemu.hw.mainkeys=1 и снова перезагрузив аппарат.

Управляющие кнопки разделяют на механические и программные. Первые располагаются на корпусе вашего гаджета - это кнопка питания, качелька громкости (две кнопки с одной качающейся клавишей) и иногда кнопка Домой (в последнее время чаще бывает программной.

Вторые - это виртуальные кнопки, располагающиеся на экране смартфона или планшета и управляемые также нажатием пальца, но уже на экране. Это программная кнопка Домой , кнопка Назад и кнопка Последние приложения (иногда это кнопка контекстного Меню). Вид этих кнопок зависит от применяемой версии ОС Android. Это может быть соответственно домик, изогнутая стрелка и два прямоугольника один за другим (версия Андроид 4.х) или соответственно круг, треугольник и квадрат (версия Андроид 5).

Остановимся на назначении управляющих кнопок .

Назначение кнопки питания и качельки громкости очевидно. Однако особенностью является то, что включение выключенного смартфона производится длинным (более 2 сек) нажатием на кнопку питания, после чего следует процесс загрузки ОС. При работающем смартфоне короткое нажатие на эту кнопку вызывает экран блокировки (если он включен в настройках) или непосредственно переход на рабочий стол. При работающем смартфоне длинное нажатие на кнопку питания вызывает Меню, в котором присутствуют пункты Выключение, Передача данных, Автономный режим и Перезагрузка (Рестарт).

Механическая кнопка Домой при коротком нажатии вызывает экран блокировки или переход на главный рабочий стол. Длительное нажатие может вызвать список последних запущенных приложений , а двойное нажатие - одну из программ (например, в смартфонах Samsung вызывается приложение S Voice).

Программная кнопка Назад вызывает переход на предыдущий экран, последовательные нажатия - соответственно на несколько предыдущих экранов вплоть до закрытия приложения. Здесь нужно подчеркнуть, что в последнем случае приложение выгружается из оперативной памяти, в то время как нажатие кнопки Домой вызывает переход на главный рабочий стол, но ранее открытое приложение остается в памяти и продолжает работать в фоновом режиме .

Кнопка Последние приложения очень удобна, так как при необходимости повторного запуска одного из ранее используемых приложений нет необходимости снова искать его в общем списке программ (Меню Приложения ) или искать его значок на рабочих столах. Приложения в списке всегда располагаются в обратном хронологическом порядке их запуска (последние запущенные - первыми в списке). Кроме того, в окне списка имеются и дополнительные кнопки вызова Списка активных задач (работающих в фоне приложений), кнопка Поиска приложений и кнопка Очистки списка последних приложений.


Легкая утилита, которая неплохо упрощает работу с устройством.


Введение:

Какую кнопку каждый пользователь использует чаще всего за день? Это либо кнопка Домой, либо кнопка Назад. Приложение под названием создано для того, чтобы расширить функционал кнопки Назад, привязав к ней возможность управления жестами, что позволит автоматизировать некие другие системные функции. Стоит понимать, что привычная кнопка Назад останется на том же месте, а приложение добавляет свою собственную, которая, при этом, не займет много места.



Функционал:


Для использования приложения Root права не требуется, но вместо этого необходимо активировать службу приложению в разделе “Специальные возможности”. Функционал у приложения оказался достаточно простым, но то, что это работает и при этом абсолютно не мешает привычной работе с устройством, уже заслуживает определенной похвалы. На главном экране представлено 3 вида действий, которые вы можете выполнить с кнопкой: удерживание, жест вверх и жест вниз. Для каждого из действий можно выбрать одно из 5 действий:
1. Никакого действия.
2. Домой
3. Недавно запущенные приложения
4. Уведомления
5. Спрятать кнопку
Жесты выполняются следующим образом: ставите палец на кнопку, а затем проводите вверх или вниз, при этом на самой кнопке будет появляться ободок определенного цвета. Естественно, если просто нажать на кнопку, то она отработает точно так же, как и системная кнопка Назад.


Итоги:


В настройках можно выключить приложение, а также убрать уведомления, которое позволяет скрыть или показать кнопку. Подведем итоги: вполне способна сделать использование устройства гораздо проще и удобнее, особенно, если привыкнуть к таким действиям. Приятного пользования!

Механические кнопки в смартфоне – это прошлый век, откуда-то из тех времен, когда люди хвастались количеством голосов в полифонии и цветов в дисплее. Тогда у нас еще не было сенсорных экранов и прочих достижений прогресса, на моем Alcatel кнопку Home и вовсе заменял джойстик.

Но сейчас другое время, концепция управления гаджетами уходит от всякого рода лишних нажатий, сенсорные интерфейсы делают основным элементом управления ваш собственный палец, скользящий в определенном жесте по дисплею. Вслед за отказом от механических клавиатур, производители стали отказываться и от физических клавиш управления, заменяя их наэкранными. А новое поколение смартфонов даже разблокируется без нажатия на кнопку питания, Moto X достаточно взять в руку, а LG G2 постучать по экрану.

Но что делать, если вы еще не разорились на новый гаджет, а ощутить прелесть управления устройством по последнему слову техномоды желаете?

Gravity Screen — On/Off

Это приложение выручит тех, кто хочет, чтобы экран телефона становился активным, как только он попадает в руку хозяина и выключался, оказавшись на столе или в кармане.

Оно собирает данные с датчика приближения и гироскопа, блокируя и разблокируя экран в нужный момент. Я попробовал, и решил оставить. это очень удобно, когда телефон загорается, стоит взять его в руку, не тухнет, анализируя малейшие движения руки, когда вы читаете информацию с экрана, и выключается, стоит сунуть его в карман или положить на стол. Надо только привыкнуть не нажимать кнопку питания по старой памяти.

Базовые возможности приложения бесплатные, и включают в себя настройки углов срабатывания и чувствительности. За несколько большую гибкость предстоит отдать порядка 2 долларов.

Отказ от физической кнопки в пользу жестов, тоже привносит в жизнь пользователя немного добра. Особенно, в условиях неустанно растущих диагоналей экранов. И в этом поможет Swipe Home Button.

Выполнить жест пальцем гораздо проще, чем перехватывать телефон, чтобы дотянуться до кнопки меню. В настройках можно назначить на определенные жесты такие действия как: нажатие кнопки Home, открытие какого-то приложения или шторки уведомлений.

К сожалению, в приложении не реализована кнопка «Назад». Из-за особенностей Android для этого нужен Root, а разработчик, видимо, не хочет идти по такому пути. Если у вас есть классное предложение, основанное именно на жестах – делитесь им в комментариях!

Для тех же, кому не принципильно управление движением пальца, а достаточно наэкранной кнопки в доступном месте, есть варианты вроде: Back Button или Handy Soft Keys . Но мне они по вкусу не пришлись.

А как вы «управляетесь» со своим гаджетом?