4

アプリ内で、標準の Android フォン キー (ホーム、メニュー、戻る、検索) のライトをオフにする方法が必要です。プログラムでこれを行うにはどうすればよいですか?

4

2 に答える 2

2

このページによると、ハードウェア キーのバックライトは、スーパーユーザー権限でファイル システム内の特定のファイルに書き込むことで制御できます (つまり、電話は「ルート化」されている必要があります)。

Q: キーボードのバックライトを制御するにはどうすればよいですか?

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() の結果をチェックして、書き込みエラーが発生したかどうかを確認することをお勧めします。

注:私は自分の電話でこれをテストしましたが、ルートとして機能しなくても機能するようです。ただし、これはすべての電話に当てはまるわけではないため、結果が異なる場合があります。

于 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 に答える