Приказка за три бутона. Колона от Евгений Зобнин

Съдържанието на статията

Веднага ще направя резервация: Аз съм голям фен на идеята за екранни навигационни клавиши. Всички тези къщи, стрелки и квадрати, нарисувани в долната част на екрана. Да, те заемат малко място там (което обаче в повечето случаи не е наистина необходимо), да, те могат да развалят външния вид на приложенията, но, по дяволите, те са динамични.

Бутоните за навигация на екрана се завъртат заедно с екрана, изчезват, когато не са необходими, променят цвета и се интегрират безпроблемно в интерфейса на началния екран. Ако отхвърлим самата идея за безполезността на съществуването на три бутона едновременно (в крайна сметка хората от Yabloko се справят с един и не се чувстват в неравностойно положение) и доста удобни навигационни системи като PIE или MIUI балон за навигация, тогава екранните бутони са най-доброто, което е измислено досега.

Ситуацията е изключително неприемлива и като се има предвид, че любезният разработчик на фърмуер не е предоставил никакви настройки за активиране на екранните клавиши и настройки за управление на сензорните бутони, трябваше да го направя сам. Имаше две възможности за по-нататъшни действия:

  • доведете сензорните бутони до желаното състояние, а именно изключете подсветката и преместете клавиша „Назад“ отляво (дори да изглежда като „квадрат“, това е още по-интересно);
  • деактивирайте напълно сензорните бутони и активирайте екранните бутони.

Не харесвам инструменти на трети страни, така че решението да направя всичко със собствените си ръце дойде от само себе си.

Метод номер едно. Конфигуриране на сензорни бутони

Първо, нека се опитаме да изключим осветлението на бутоните. За целта се нуждаем от root, емулатор на терминал и/sys директория в корена на файловата система. Това е точно комбинацията. Имаме работа с ядрото на Linux и в системи, базирани на него, цялата важна информация за хардуера, както и "превключвателите", които го контролират, обикновено се намират във файловата система sysfs, свързана с директорията/sys.

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

И така, получаваме root, стартираме емулатора на терминал (или по-добре ADB). И ние пишем следното:

Сега сме в директорията/sys, след което трябва да намерим директорията, в която се намират файловете с драйвери за осветяване на бутони:

Бинго! Това е директорията/sys/class/leds/button-backlight. Влизаме в него и виждаме какво има вътре:

Обзалагам се с моята Nokia 3310, че файлът яркост Е текущата яркост на бутоните и max_brightness - максимум. Нека проверим предположението, като напишем стойността 100 в първия файл (добре, като 100%, въпреки че какъв мащаб има, не е известно):

Страхотно, бутоните са включени и дори няма да изгаснат.

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

Бутоните угаснаха, завинаги, като светлината на стълбището ми снощи.

Но точно като крушка, те могат да се включат отново, ако рестартирате. Тоест командата е валидна само в текущата сесия. За щастие няма значение, ще поставим командата си в скрипт на картата с памет:

И той от своя страна ще бъде пуснат в стартиране с помощта на init.d поддръжка на скриптове. Стартирайте приложението, маркирайте първите три квадратчета, използвайте опцията Избор на папка, за да изберете директорията за зареждане на картата с памет.

приказка
Отиваме на sysfs
сензорните бутони
поддръжка на скриптове init.d

Половината задача е изпълнена, остава да смените бутоните "Назад" и "Преглед". За да направите това, трябва да промените оформлението на бутоните. В Android той се намира в няколко файла в директорията/system/usr/keylayout /. Има немалко от тях, но ако изхвърлите файловете като Vendor_2378_Product_100a.kl и qwerty.kl (те съхраняват оформления на пълноценни клавиатури Qwerty, които Android поддържа извън кутията), тогава остават само пет парчета.

Ако отворите този файл, можете да видите трите реда, които търсите:

Остава само да се разменят числата 158 и 139 (всеки файлов мениджър с root поддръжка е подходящ за това). След рестартиране новото оформление ще влезе в сила.

Метод номер две. Екранни клавиши

Тук е още по-лесно. Android има специална променлива за отстраняване на грешки qemu.hw. основни клавиши, което ви позволява да контролирате видимостта на екранните навигационни клавиши. Ако има стойност 0, клавишите ще се покажат на екрана, 1 - обратният ефект.

Записваме променливата с желаната стойност във файла /system/build.prop и това е всичко:

След това можете да „деактивирате“ твърдите бутони, като изключите подсветката им, както направихме при първия метод. Може би, разбира се, има възможност да ги изключите напълно, но не успяхме да го намерим.

бутона

Евгений Зобнин