Android获取电池电量的三种方法

方法一:注册广播

这个方法网上一搜一大堆,我也贴出部分代码

IntentFilter filter2 = new IntentFilter();
filter2.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(filter2,receiver);
接收到广播后,用getIntExtra("level")和getIntExtra("scale")获得相应值

方法二:通过执行命令(不需要root)
通过adb shell dumpsys battery,返回结果后有电池的各种信息,其中就包括level(百分比)

方法三:通过BatteryManager
 
  
BatteryManager batteryManager=(BatteryManager)getSystemService(BATTERY_SERVICE);
System.out.println(batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER));
System.out.println(batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE));
System.out.println(batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_NOW));

这个需要Api>=21才行,所以说4.4.2的手机是不支持的。4.4.2手机执行上述代码的时候程序会崩溃。
我是第一次碰到这种问题,所以标记一下。

你可能感兴趣的:(Android获取电池电量的三种方法)