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

标签 java android battery

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

最佳答案

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

总结一下,ACTION_BATTERY_CHANGED Intent 的广播接收器是动态设置的,因为无法通过manifest中声明的组件接收,只能通过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));
  }
}

关于java - 在 Android 中获取电池电量和状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3291655/

相关文章:

android - 这是在 android 中设置模拟位置的最佳应用程序

android - 使用 openCV 在 Android 中进行模板匹配

android - 获取电池电量

java - Java 中的意外性能损失

java - 如何在一个 Java 进程中创建和写入文件并从另一个进程中读取文件而不会遇到读/写问题(Java/EE)

android - 为什么有些 gl 调用接受数组,而其他的只接受 Android 上的缓冲区

iOS - 以编程方式获取应用程序的电池使用情况

css - 奇怪的悬停故障 CSS

java - JLabel 的 setCharAt a

java - 为什么内部类可以访问另一个内部类的私有(private)成员?