BatteryManager类没有当前的指标: http://developer.android.com/reference/android/os/BatteryManager.html
然后我发现这篇文章: Getting the battery current values for the Android Phone 似乎作者还发现不可能从Linux条目中获得这样的价值。
我还将名为CurrentWidget的小部件下载到我的Nexus 7中。对于当前值,它显示“无数据”。
因此可能需要一个电流传感器才能获得当前值,而某些Android系统只是没有这样的传感器。那么android系统如何知道当前的电池电量?也许只会用电池的电压来推断(放电期间电压会下降)?但那时它会非常粗糙。有人说有一些“技巧”用于估算电池电量而没有Android中的当前值(可能基于电压?)。有没有参考?
PS:出于某种原因,我知道当前的价值可以记录在iphone 3GS上
答案 0 :(得分:1)
尝试此代码,可能会对您有所帮助:
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));