public void batteryStatusChange(int status)
{
if(DeviceInfo.getBatteryLevel() == 70)
{
// TODO Auto-generated method stub
//play a tune that tells the user that yourbattery is at 70%
}
}
查看文档,状态为"DeviceInfo的BSTAT_xxx掩码的组合">
如果我的电池电量百分比下降,例如71%到70%,即使我不使用状态参数,SystemListener2接口是否会调用此函数?
如果我想在BSTAT中更具体一点,比如说只在电池电量变化时激活功能内部的方法,而不是在检测到任何类型的变化(如热或冷)时激活,那么这个代码:
public void batteryStatusChange(int status)
{
if(status == DeviceInfo.BSTAT_LEVEL_CHANGED)
if(DeviceInfo.getBatteryLevel() == 70)
{
//play a tune that tells the user that ur battery is at 70%
// TODO Auto-generated method stub
}
}
基本上和第一个代码做的一样,但是随着级别的变化进行检查?
如果status
是BSTAT_
掩码的组合,那么我认为您需要此测试来确定int
值是否包含BSTAT_LEVEL_CHANGED
位。
public void batteryStatusChange(int status)
{
if ((status & DeviceInfo.BSTAT_LEVEL_CHANGED) != 0)
{
if(DeviceInfo.getBatteryLevel() == 70)
{
//play a tune that tells the user that ur battery is at 70%
}
}
}
或者,我想另一种自己跟踪的方法就是将级别记录为成员变量:
private int currentBatteryLevel = -1;
public void batteryStatusChange(int status)
{
int newBatteryLevel = DeviceInfo.getBatteryLevel();
if (currentBatteryLevel != newBatteryLevel)
{
currentBatteryLevel = newBatteryLevel;
if(DeviceInfo.getBatteryLevel() == 70)
{
//play a tune that tells the user that ur battery is at 70%
}
}
}