我正在制作一个基于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),但他没有得到他想要的答案!