【发布时间】:2013-03-09 23:55:45
【问题描述】:
我正在使用以下代码来获取电池在两个不同时间 (t1,t2) 的电压。 t1 是在任务执行之前,t2 是在任务执行之后。所以根据规则,t2 必须小于 t1。
但是,在执行过程中它不是真的。我得到了多个值,它们更大、更小并且等于 t1。这怎么可能?即使在android电池监控工具中,我也注意到有时在不插入充电器的情况下总电池mAh值会增加几个点。
public void onCreate() {
BroadcastReceiver batteryReceiver = new BroadcastReceiver() {
int scale = -1;
int level = -1;
int voltage = -1;
int temp = -1;
@Override
public void onReceive(Context context, Intent intent) {
level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
Log.e("BatteryManager", "level is "+level+"/"+scale+", temp is "+temp+", voltage is "+voltage);
}
};
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryReceiver, filter);
}
【问题讨论】:
-
这些值很可能是对当前电池寿命的估计,因此存在不一致之处。
-
是的,知道如何使它保持一致吗?在这种情况下,我得到的甚至是负值。
-
发明更好的锂电池技术 =/ 你受制于硬件本身。