Android - выключить аппаратную подсветку клавиш - PullRequest
4 голосов
/ 11 ноября 2010

Внутри моего приложения мне нужен способ выключить подсветку стандартных клавиш телефона Android (Домой, Меню, Назад и Поиск) - как я могу сделать это программно?

Ответы [ 2 ]

2 голосов
/ 27 января 2011

Согласно этой странице , подсветкой аппаратных клавиш можно управлять путем записи в определенный файл в файловой системе с привилегиями суперпользователя (т. Е. Телефон должен быть "root"):

В: Как мне управлять клавиатурой? подсветка

A: Подсветка клавиатуры может быть контролируется через / SYS / класс / СИД / клавиатура-подсветка / яркость. Похоже, что это просто вкл-выкл контроль (повторение «0» выключает его, повторение «1» или выше включает его). По какой-то причине система по умолчанию Кажется, что установлено управление подсветкой это до "83", но я не знаю почему. я не вижу никакой разницы между 83 и любым другим номером. файл может быть прочитан кем угодно, но только Доступно для записи root, поэтому вам понадобится root доступ к телефону, чтобы манипулировать им вот так.

Таким образом, чтобы программно отключить подсветку, вы можете вызвать exec () во время выполнения следующим образом:

Runtime r = Runtime.getRuntime();
r.exec("echo 0 > /system/class/leds/keyboard-backlight/brightness");

Зависит от того, что вы делаете, но, вероятно, было бы целесообразно проверить результат exec () впоследствии, чтобы увидеть, произошла ли ошибка записи.

Примечание: Я проверил это на своем собственном телефоне, и, похоже, он работает без прав root. Однако это может быть не на каждом телефоне, поэтому у вас могут быть разные результаты.

1 голос
/ 03 июля 2015
This is applicable only for the device samsung devices:

To get the BackLight sate:
int backLight = Settings.System.getInt(getContentResolver(), "button_key_light");
// if it return -1 it means that light is on
// if it return 0 the light is off
// some time it will return values like 600(1.5 sec)
if you want to put the backLight as off u can do like this

Settings.System.putInt(getApplicationContext().getContentResolver(), "button_key_light", 0);
...