如何检查Android中的电池电量

时间:2015-02-24 01:51:14

标签: android

我正在尝试检查手机的电池续航时间,以查找我正在撰写的应用。我目前正试图在屏幕上显示它。 每当我检查电池寿命时,我总是得到相同的值,这是我开始时电池电量所处的值。如果我在程序中浪费电池(并且我确认一个百分点确实下降了),显示的电池电量将是程序一开始时显示的相同级别。

// relevant class variables:
Intent batteryStatus;

Code:
//(Function that checks battery life when device is shaken:)
if(deviceShaken)
{
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float batteryPct = level / (float)scale;
//Code to allow me to check battery life:
Toast toast = Toast.makeText(getApplicationContext(), Double.toString(batteryPct), Toast.LENGTH_LONG);
toast.show(); //ALWAYS SHOWS THE AMOUNT OF BATTERY THAT THE PROGRAM STARTED WITH
}

onCreateMethod()
{
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
batteryStatus = getApplicationContext().registerReceiver(null,intentFilter);
}

有什么想法吗? 感谢。

1 个答案:

答案 0 :(得分:2)

在检索附加内容之前,batteryStatus Intent不会更新,因此它们永远不会更改。将onCreate()中的代码移至if块的开头。