1

我正在制作一个基于BatteryManager的应用程序。但是每个都BATTERY_PROPERTY返回 0。这是我的代码:

     if(Build.VERSION.SDK_INT >=21){
     BatteryManager bm = (BatteryManager) MainActivity.this.getSystemService(Context.BATTERY_SERVICE);

        int remainingCapacityRatio = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
               //print it
        int batteryCapacityMicroAh = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER);
                //print it
        int dischargingTimeSeconds  = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE);
                //print it
        int  currentNow  = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_NOW);
                //print it
        long energyCounter  = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER);
                //print it
            }

即使我使用getLongProperty(),我也只能得到一个固定值。

我确实有BATTERY_STATS许可(并且Intent.ACTION_BATTERY_CHANGED,即使它不需要它)。

还有一件事:谁能告诉我如何获得当前的电池容量(当前,不是总容量)?我上面的代码可以做到吗?

编辑 1:第一个 ( remainingCapacityRatio) 有效,但我还需要另外 4 个!

编辑 2:有人问同样的问题(Android BatteryManager 为所有属性检索调用返回 0),但他没有得到他想要的答案!

4

0 回答 0