首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Android中获取电池电量和状态

在Android中获取电池电量和状态
EN

Stack Overflow用户
提问于 2010-07-20 23:32:48
回答 8查看 154.5K关注 0票数 119

如何获得电池电量和状态(已插入、正在放电、正在充电等)?我研究了开发人员文档,发现了一个BatteryManager类。但它不包含任何方法,只包含常量。我该如何使用它呢?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-07-20 23:47:26

Here是一个代码示例,解释了如何获取电池信息。

总而言之,ACTION_BATTERY_CHANGED意图的广播接收器是动态设置的,因为只有通过显式地向Context.registerReceiver()注册才能通过清单中声明的组件接收它。

代码语言:javascript
复制
public class Main extends Activity {
  private TextView batteryTxt;
  private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
    @Override
    public void onReceive(Context ctxt, Intent intent) {
      int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
      int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
      float batteryPct = level * 100 / (float)scale;
      batteryTxt.setText(String.valueOf(batteryPct) + "%");
    }
  };

  @Override
  public void onCreate(Bundle b) {
    super.onCreate(b);
    setContentView(R.layout.main);
    batteryTxt = (TextView) this.findViewById(R.id.batteryTxt);
    this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
  }
}
票数 139
EN

Stack Overflow用户

发布于 2016-07-22 00:00:16

SDK 21 LOLLIPOP以来,可以使用以下命令以百分比形式获取当前电池电量:

代码语言:javascript
复制
BatteryManager bm = (BatteryManager) context.getSystemService(BATTERY_SERVICE);
int batLevel = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);

阅读BatteryManager  |  Android Developers - BATTERY_PROPERTY_CAPACITY

票数 127
EN

Stack Overflow用户

发布于 2016-10-01 01:58:11

你不需要注册一个实际的BroadcastReceiver,因为安卓的BatteryManager使用了一个粘性的意图:

代码语言:javascript
复制
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = registerReceiver(null, ifilter);

int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

float batteryPct = level / (float)scale;

return (int)(batteryPct*100);

这是来自https://developer.android.com/training/monitoring-device-state/battery-monitoring.html的官方文档。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3291655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档