アプリ内で、標準の Android フォン キー (ホーム、メニュー、戻る、検索) のライトをオフにする方法が必要です。プログラムでこれを行うにはどうすればよいですか?
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() の結果をチェックして、書き込みエラーが発生したかどうかを確認することをお勧めします。
注:私は自分の電話でこれをテストしましたが、ルートとして機能しなくても機能するようです。ただし、これはすべての電話に当てはまるわけではないため、結果が異なる場合があります。
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);