2017-09-24 1 views
1

Je peux lire la valeur du courant instantané avec _CURRENT_NOW et obtenir la capacité restante de la batterie en pourcentage avec _CAPACITY. Le problème est que je ne peux pas avoir accès à la capacité de la batterie restante dans mAh avec la propriété _CHARGE_COUNTER (ni _ENERGY_COUNTER). Est-ce dû à une raison matérielle ou n'est-ce pas possible sur un téléphone non raclé? Je n'arrive pas à comprendre pourquoi le code ci-dessous ne fonctionne pas.Pourquoi BATTERY_PROPERTY_CHARGE_COUNTER ne fonctionne pas en tant que BATTERY_PROPERTY_CURRENT_NOW?

 TextView current = (TextView) findViewById(R.id.current); 
    TextView chargeCounter = (TextView) findViewById(R.id.chargeCounter); 
    TextView batteryLevel = (TextView) findViewById(R.id.batteryLevel); 
    TextView energyCounter = (TextView) findViewById(R.id.energyCounter); 

    BatteryManager batteryManager = (BatteryManager) getSystemService(BATTERY_SERVICE); 

    long cu = batteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_NOW); 
    long q = batteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER); 
    long level = batteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY); 
    long energy = batteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER); 

    current.setText("Current : " + String.valueOf(cu) + " mA"); 
    chargeCounter.setText("Remaining capacity : " + String.valueOf(q) + " uAh"); 
    batteryLevel.setText("Battery status : " + String.valueOf(level) + " %"); 
    energyCounter.setText("Battery status : " + String.valueOf(energy) + " %"); 

Pour chaque propriété qui ne fonctionne pas avoir ce nombre énorme: 9223372036854775808

Pour plus d'informations: https://source.android.com/devices/tech/power/device

Merci!

Répondre