2010-11-11 18 views

Répondre

3

Selon this page, les rétroéclairages clés du matériel peut être contrôlé en écrivant à un fichier spécifique dans le système de fichiers avec les privilèges de super-utilisateur (c.-à-téléphone doit être « enraciné »):

Q: Comment puis-je contrôler la clavier rétroéclairage? R: Le rétroéclairage du clavier peut être commandé par via /sys/class/leds/clavier-rétro-éclairage/luminosité. Il semble qu'il s'agisse d'un simple contrôle marche-arrêt (l'écho '0' l'éteint, fait écho à '1' ou plus haut). Pour une raison quelconque, le système de contrôle de rétro-éclairage par défaut semble mettre à "83", mais je ne sais pas pourquoi. I ne peut pas sembler voir une différence entre 83 et tout autre nombre. Le fichier est lisible par tout le monde, mais seulement inscriptible par root, donc vous aurez besoin de l'accès au téléphone pour le manipuler de cette façon.

Donc, pour désactiver le rétro-éclairage par programmation, vous pouvez invoquer exec() sur le Runtime comme ceci:

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

Cela dépend de ce que vous faites, mais serait probablement sage de vérifier le résultat de exec () ensuite pour voir si une erreur d'écriture s'est produite.

Note: J'ai testé cela sur mon propre téléphone et il semble fonctionner sans agir comme root. Cependant, cela peut ne pas être le cas sur tous les téléphones, vous pouvez donc avoir des résultats différents.

+0

Quelques images 'monture sys' dans'/sys', ce qui rendrait le chemin de '/ sys/class/LED/bouton rétro-éclairage/brightness' - qui fonctionne sur Elephone P5000 par exemple. –

+1

- oups, maintenant j'ai remarqué que le chemin est mentionné dans la partie citée de la réponse. Désolé pour la duplicité. –

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); 
+0

Je reçois cette exception en essayant putInt java.lang.IllegalArgumentException: Vous ne pouvez pas conserver vos paramètres dans les paramètres sécurisés. – Rosenpin

+0

dans l'appareil Samsung qui a backLight avenir, il a variable système comme "button_key_light" -1 pour "on" 0 pour "off" – KomalG

+0

Je l'ai eu, mais votre code pour les définir provoque une exception et ne fonctionne pas, à le moins sur l'appareil que j'ai testé sur (Galaxy S7) – Rosenpin