4

在我的应用程序中,我需要一种方法来关闭标准 Android 手机键(主页、菜单、返回和搜索)上的灯 - 我如何以编程方式执行此操作?

4

2 回答 2

2

根据此页面,可以通过以超级用户权限写入文件系统中的特定文件来控制硬件按键背光(即电话必须是“root”):

问:如何控制键盘背光?

A:键盘背光可以通过/sys/class/leds/keyboard-backlight/brightness来控制。看起来它是一个简单的开关控制(回显“0”将其关闭,回显“1”或更高将其打开)。出于某种原因,默认的系统背光控制东西似乎将其设置为“83”,但我不知道为什么。我似乎看不出 83 和任何其他数字之间有什么区别。任何人都可以读取该文件,但只能由 root 写入,因此您需要对手机进行 root 访问才能以这种方式操作它。

因此,要以编程方式关闭背光,您可以在运行时调用exec() ,如下所示:

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

取决于您在做什么,但之后检查 exec() 的结果以查看是否发生写入错误可能是明智的。

注意:我在自己的手机上对此进行了测试,它似乎可以在不作为 root 的情况下工作。但是,并非每部手机都是这种情况,因此您可能会得到不同的结果。

于 2011-01-27T03:07:35.657 回答
1
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);
于 2015-07-03T11:26:05.897 回答