本文共 4822 字,大约阅读时间需要 16 分钟。
// 电池状态import static android.os.BatteryManager.EXTRA_STATUS;// 未知import static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN;// 充电中import static android.os.BatteryManager.BATTERY_STATUS_CHARGING;// 放电中import static android.os.BatteryManager.BATTERY_STATUS_DISCHARGING;// 未充电import static android.os.BatteryManager.BATTERY_STATUS_NOT_CHARGING;// 电池满import static android.os.BatteryManager.BATTERY_STATUS_FULL;// 电池健康情况import static android.os.BatteryManager.EXTRA_HEALTH;// 未知import static android.os.BatteryManager.BATTERY_HEALTH_UNKNOWN;// 良好import static android.os.BatteryManager.BATTERY_HEALTH_GOOD;// 过热import static android.os.BatteryManager.BATTERY_HEALTH_OVERHEAT;// 没电import static android.os.BatteryManager.BATTERY_HEALTH_DEAD;// 未知错误import static android.os.BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE;// 过电压import static android.os.BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE;// 温度过低import static android.os.BatteryManager.BATTERY_HEALTH_COLD;// 充电类型import static android.os.BatteryManager.EXTRA_PLUGGED;// 充电器import static android.os.BatteryManager.BATTERY_PLUGGED_AC;// 其他import static android.os.BatteryManager.BATTERY_PLUGGED_ANY;// USBimport static android.os.BatteryManager.BATTERY_PLUGGED_USB;// 无线充电import static android.os.BatteryManager.BATTERY_PLUGGED_WIRELESS;// 当前电量import static android.os.BatteryManager.EXTRA_LEVEL;// 当前电池温度import static android.os.BatteryManager.EXTRA_TEMPERATURE;import static android.os.BatteryManager.EXTRA_SCALE;// 当前电池电压import static android.os.BatteryManager.EXTRA_VOLTAGE;// 电池技术描述import static android.os.BatteryManager.EXTRA_TECHNOLOGY;// 最大充电电压import static android.os.BatteryManager.EXTRA_MAX_CHARGING_VOLTAGE;// 最大充电电流import static android.os.BatteryManager.EXTRA_MAX_CHARGING_CURRENT;
我们可以监听电池广播获取
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 status = intent.getIntExtra(EXTRA_STATUS, BATTERY_STATUS_UNKNOWN); int plugged = intent.getIntExtra(EXTRA_PLUGGED, BATTERY_PLUGGED_ANY); int level = intent.getIntExtra(EXTRA_LEVEL, 0); int scale = intent.getIntExtra(EXTRA_SCALE, 0); int health = intent.getIntExtra(EXTRA_HEALTH, BATTERY_HEALTH_UNKNOWN); int maxChargingMicroAmp = intent.getIntExtra(EXTRA_MAX_CHARGING_CURRENT, -1); int maxChargingMicroVolt = intent.getIntExtra(EXTRA_MAX_CHARGING_VOLTAGE, -1); int batteryVolt = intent.getIntExtra(EXTRA_VOLTAGE, -1); int temperature = intent.getIntExtra(EXTRA_TEMPERATURE, -1); String batteryTechnologyDescript = intent.getStringExtra(EXTRA_TECHNOLOGY);
读取文件节点即可
adb shell “cat /sys/class/power_supply/battery/batt_vol”
/** * 当前充电电压 uV * * adb shell "cat /sys/class/power_supply/battery/batt_vol" */ private int getCurrentChargingVoltage() { int result = 0; BufferedReader br = null; try { String line; br = new BufferedReader(new FileReader("/sys/class/power_supply/battery/batt_vol")); if ((line = br.readLine()) != null) { result = Integer.parseInt(line); } br.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; }
读取文件节点即可
adb shell “cat /sys/class/power_supply/battery/BatteryAverageCurrent”
/** * 当前充电电流 mA * * adb shell "cat /sys/class/power_supply/battery/BatteryAverageCurrent" */ private int getCurrentChargingCurrent() { int result = 0; BufferedReader br = null; try { String line; br = new BufferedReader(new FileReader("/sys/class/power_supply/battery/BatteryAverageCurrent")); if ((line = br.readLine()) != null) { result = Integer.parseInt(line); } br.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; }
转载地址:http://cgcti.baihongyu.com/