2013-05-27 47 views
4

的BatteryManager类不具备度量当前: http://developer.android.com/reference/android/os/BatteryManager.html在Android中,有没有办法让电池电流?

然后我找到了这个帖子: Getting the battery current values for the Android Phone 看来,笔者还发现这是不可能从Linux项目获取这样的价值。

我还下载了名为CurrentWidget的小部件到我的Nexus 7中。对于当前值,它显示“无数据”。

因此可能需要一个当前传感器来获取当前值,而一些android系统就没有这样的传感器。那么android系统如何知道当前的电池电量?也许它会使用电池电压来推断(放电期间电压会降低)?但是,它会非常粗糙。有人说,有一些'技巧'用于估算Android中没有电流值的电池电量(可能基于电压?)。有没有参考?

PS:由于某种原因,我知道电流值可以记录在iphone 3GS

+0

小部件表示它硬编码数据路径,因此它不会在每部手机上都能正常工作。 – StoneBird

回答

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)); 
相关问题