BatteryManager 类没有电流指标:http://developer.android.com/reference/android/os/BatteryManager.html http://developer.android.com/reference/android/os/BatteryManager.html
然后我发现了这个帖子:获取 Android 手机的电池电流值 https://stackoverflow.com/questions/2439619/getting-the-battery-current-values-for-the-android-phone看来作者也发现从Linux入门中不可能得到这样的价值。
我还将名为 CurrentWidget 的小部件下载到我的 Nexus 7 中。对于当前值,它显示“无数据”。
因此,可能需要电流传感器来获取当前值,而某些 Android 系统只是没有这样的传感器。那么android系统如何知道当前的电池电量呢?也许它只是用电池的电压来推断(放电过程中电压会下降)?但这样的话粒度就会非常粗。有人说 Android 中有一些“技巧”可以在没有当前值的情况下估计电池电量(可能基于电压?)。有什么参考吗?
PS:由于某种原因,我知道iphone 3GS上可以记录当前值
试试这个代码,也许它会对你有帮助:
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));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)