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

新手上路,请多包涵

如何获得电池电量和状态(插入、放电、充电等)?我研究了开发人员文档并找到了 BatteryManager 类。但它不包含任何方法,只是常量。我什至如何使用它?

原文由 Mohit Deshpande 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

Tutorial For Android 有一个代码示例,解释了如何获取电池信息。

综上所述, ACTION_BATTERY_CHANGED 意图的广播接收器是动态设置的,因为它不能通过清单中声明的组件接收,只能通过显式注册 Context.registerReceiver()

 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));
  }
}

原文由 SirDarius 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

 BatteryManager bm = (BatteryManager) context.getSystemService(BATTERY_SERVICE);
int batLevel = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);

阅读 BatteryManager | Android 开发人员 - BATTERY_PROPERTY_CAPACITY

原文由 Mark 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏