11 votes

Comment obtenir l'état de la batterie dans le terminal ?

J'ai un téléphone avec dropbear installé. J'accède généralement à mon téléphone par WiFi et j'exécute les commandes dans Putty.

Je veux obtenir l'état et le pourcentage de la batterie dans le terminal. Existe-t-il une commande ou un programme permettant d'obtenir des informations sur la batterie ?

11voto

Firelord Points 23064

Interroger le service système battery (nécessite éventuellement un accès Root)

dumpsys battery

Le résultat serait le suivant

Current Battery Service state:
  AC powered: false
  USB powered: true
  Wireless powered: false
  **status: 2**
  health: 2
  present: true
  **level: 70**
  scale: 100
  voltage:3950
  temperature: 260
  technology: Li-ion

level: 70 est le pourcentage de la batterie ici.


Je ne suis pas sûr pour Android 2.3 mais cela concerne au moins Android 4.2.1 et plus :

(Préfixe <em>shell adb </em>à côté de chaque commande pour exécuter la commande en utilisant adb).

  • Vous obtiendrez ainsi une liste de toutes les diffusions historiques ainsi que des diffusions adhésives :

    dumpsys activity broadcasts

    Dans la recherche de sortie :

    Sticky action android.intent.action.BATTERY\_CHANGED:

    Les lignes à côté, jusqu'à ce que vous rencontriez une nouvelle émission collante, nous sont utiles. Dans mes appareils, elles sont répertoriées comme suit :

    Intent: act=android.intent.action.BATTERY\_CHANGED flg=0x60000010
    Bundle\[{icon-small=17302819, present=true, scale=100, **level=100**, technology=Li-ion, **status=4**, voltage=4140, invalid\_charger=0, plugged=0, health=2, temperature=200}\]

    En supposant que votre Android a grep vous pouvez raccourcir la recherche en utilisant :

    dumpsys activity broadcasts | grep -A2 "Sticky action android.intent.action.BATTERY\_CHANGED:"

    (Source : <a href="http://developer.android.com/training/monitoring-device-state/battery-monitoring.html" rel="noreferrer">Surveillance du niveau de la batterie et de l'état de charge </a>)

  • Alternatif : il est possible d'interroger les informations sur la batterie à partir de /sys ou je devrais dire le noyau Linux.

    /sys/class/power_supply/battery/ a quelques fichiers avec des informations utiles. Le fichier nommé capacity est équivalent au pourcentage actuel de la batterie. Vous pouvez obtenir une info cumulée à partir de uevent également.

    Pour plus d'informations et des informations connexes, lisez ma réponse aquí .

1voto

gersh Points 564

Script pour afficher l'état de la batterie sur le terminal (Root requis)

En utilisant uniquement la méthode alternative mentionnée par @Firelord.

#!/system/bin/sh # might need to change to your sh bin 

print_battery_status()
{
    ctype=`cat /sys/class/power_supply/battery/charge_type`
    capacity=`cat /sys/class/power_supply/battery/capacity`
    charging=`cat /sys/class/power_supply/battery/charging_enabled`
    health=`cat /sys/class/power_supply/battery/health`
    status=`cat /sys/class/power_supply/battery/status`
    printf "# %s # %s # %s # %s # %s #\r" "Capacity: ${capacity}" "Charging: ${charging}" "Type: ${ctype}" "Health: ${health}" "Status: ${status}"
}

while [ true ]
do
    print_battery_status
    sleep 1 # 1 second of wait
done

Vous devrez peut-être adapter un peu le script. Certains noms de fichiers utilisés ci-dessus sont spécifiques au périphérique. Par exemple, charging_enable doit être remplacé par charge_now et certains appareils, et ainsi de suite.

Il fonctionne et montre le statut comme ci-dessous. Pour l'arrêter, utilisez CRTL+C.

./batery_status.sh
# Capacity: 63 # Charging: 1 # Type: Fast # Health: Good # Status: Charging #

Je l'utilise depuis que je fais du ssh à distance sur mon appareil. Il fonctionne même avec zygote arrêté.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X