1. 程式人生 > >獲取Android裝置電池電量狀態

獲取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手機執行上述程式碼的時候程式會崩潰。
我是第一次碰到這種問題,所以標記一下。