Android 獲取電池電壓和電池電壓高提示
阿新 • • 發佈:2018-11-21
1. Demo 下載
https://github.com/sufadi/BatteryInfo
2. 獲取電池電壓
// 當前電池電壓 import static android.os.BatteryManager.EXTRA_VOLTAGE; private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (null == intent) { return; } String action = intent.getAction(); // 當前電池電壓 int batteryVolt = intent.getIntExtra(EXTRA_VOLTAGE, -1);
3. 電池電壓高
// 過電壓 import static android.os.BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE; // 電池健康情況 import static android.os.BatteryManager.EXTRA_HEALTH; private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (null == intent) { return; } int health = intent.getIntExtra(EXTRA_HEALTH, BATTERY_HEALTH_UNKNOWN); if(health == BATTERY_HEALTH_OVER_VOLTAGE) { // 電池電壓過高,一般觸發的條件是充電器電壓達到 6.6 V }
檢視底層上報的值-BatteryServiceConstants.h
frameworks/native/services/batteryservice/include/batteryservice/BatteryServiceConstants.h:23: BATTERY_HEALTH_OVER_VOLTAGE = 5
enum { BATTERY_HEALTH_UNKNOWN = 1, BATTERY_HEALTH_GOOD = 2, BATTERY_HEALTH_OVERHEAT = 3, BATTERY_HEALTH_DEAD = 4, BATTERY_HEALTH_OVER_VOLTAGE = 5, BATTERY_HEALTH_UNSPECIFIED_FAILURE = 6, BATTERY_HEALTH_COLD = 7, };
即底層上報 health 為 5 的時候,觸發電池電壓高的警告