Android 獲取電池溫度
阿新 • • 發佈:2018-11-21
1. Demo 下載
https://github.com/sufadi/BatteryInfo
2. 電池溫度
// 當前電池溫度 import static android.os.BatteryManager.EXTRA_TEMPERATURE; private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (null == intent) { return; } String action = intent.getAction(); if (Intent.ACTION_BATTERY_CHANGED.equals(action)) { // 電池溫度 int temperature = intent.getIntExtra(EXTRA_TEMPERATURE, -1);
3. 電池健康狀態-溫度過低
private String getHealth(int health) { String result = getString(R.string.battery_health_unknow); switch (health) { case BATTERY_HEALTH_UNKNOWN:// 未知 break; case BATTERY_HEALTH_GOOD:// 良好 result = getString(R.string.battery_health_good); break; case BATTERY_HEALTH_OVERHEAT:// 過熱 result = getString(R.string.battery_health_overheat); break; case BATTERY_HEALTH_DEAD: // 沒電 result = getString(R.string.battery_health_dead); break; case BATTERY_HEALTH_UNSPECIFIED_FAILURE: // 未知錯誤 result = getString(R.string.battery_health_unspecified_failure); break; case BATTERY_HEALTH_OVER_VOLTAGE:// 過電壓 result = getString(R.string.battery_health_over_voltage); break; case BATTERY_HEALTH_COLD: // 溫度過低 result = getString(R.string.battery_health_cold); break; } return result; }
底層上報數值如下
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,
};
4.adb shell 檢視電池溫度
adb shell cat /sys/devices/platform/battery/Battery_Temperature
5. adb shell 設定電池溫度
adb shell “echo 55 > /sys/devices/platform/battery/Battery_Temperature”
這裡可以設定一些極限溫度,手機一般會報高溫和低溫警告