BatteryManager类没有current:http://developer.android.com/reference/android/os/BatteryManager.html的度量
然后我发现了这篇文章:Getting the battery current values for the Android Phone,似乎作者也发现从Linux条目中获取这样的值是不可能的。
我还将一个名为CurrentWidget的小工具下载到了我的Nexus7中。对于当前值,它显示为“无数据”。
因此,可能需要一个电流传感器来获取当前值,而一些android系统就是没有这样的传感器。那么android系统如何知道当前的电池电量呢?也许它只会根据电池的电压来推断(放电过程中电压会降低)?但是,它将是非常粗粒度的。有人说,在Android中,有一些“诀窍”可以在没有电流值的情况下估计电池电量(可能是基于电压?)。有什么参考资料吗?
PS:出于某种原因,我知道iPhone3GS上可以记录当前值
发布于 2013-05-31 12:25:08
试试这段代码,可能会对你有很大的帮助:
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent intent) {
// TODO Auto-generated method stub
//this will give you battery current status
int level = intent.getIntExtra("level", 0);
contentTxt.setText(String.valueOf(level) + "%");
int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
textView2.setText("status:"+status);
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
status == BatteryManager.BATTERY_STATUS_FULL;
textView3.setText("is Charging:"+isCharging);
int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
textView4.setText("is Charge plug:"+chargePlug);
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
textView5.setText("USB Charging:"+usbCharge+" AC charging:"+acCharge);
}
};在主类中,使用以下命令注册:
this.registerReceiver(this.mBatInfoReceiver,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));https://stackoverflow.com/questions/16765926
复制相似问题