我使用以下代码来获取应用中的电池百分比。此代码返回未连接充电时的电池百分比。 但是在充电时它返回零
如何在充电时使此代码正常工作?
public int getBatteryPercentage()
{
BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver(){
public void onReceive(Context context, Intent intent)
{
context.unregisterReceiver(this);
int currentLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
level = -1;
if (currentLevel >= 0 && scale > 0) {
level = (currentLevel * 100) / scale;
}
}
};
IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryLevelReceiver, batteryLevelFilter);
return level;
}
答案 0 :(得分:1)
这正在使用它的工作正常我
int level = 0;
level_new = i.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
scale = i.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
if (level_new >= 0 && scale > 0) {
level = (level_new * 100) / scale;
} else {
level = 0;
}