博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 电池广播信息-电池电压和电流
阅读量:4147 次
发布时间:2019-05-25

本文共 4822 字,大约阅读时间需要 16 分钟。

0.效果

image

1. 电池广播信息

// 电池状态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);

2. 电池电压获取

读取文件节点即可

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;    }

3. 电池电流获取

读取文件节点即可

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;    }

4. Demo下载

转载地址:http://cgcti.baihongyu.com/

你可能感兴趣的文章
TensorFlow on Android(9): 运行一个DEMO
查看>>
TensorFlow on Android(10): 在GPU上进行训练
查看>>
tp6事件的用法
查看>>
CRMEB接口文档
查看>>
CRMEB页面说明这个是v3.0H5端的
查看>>
CRMEBv3.0版本更新了什么?
查看>>
CRMEB v4二开文档
查看>>
php无限极分类设计,递归方式已经淘汰了
查看>>
php 获取时间段 今天昨天本周上周本月上月本季度本年去年
查看>>
php微信商城和微信小程序源码【CRMEB】
查看>>
CRMEB开发文档及目录结构
查看>>
RMEB运行环境要求
查看>>
CRMEB SSL certificate problem, verify that the CA cert is OK
查看>>
CRMEB 程序报bcadd()函数不存在错误
查看>>
CRMEB支付状态未改变
查看>>
CRMEB系统安装访问不了
查看>>
CRMEB 小程序版源码下载
查看>>
CRMEB微信商城源码下载
查看>>
CRMEB系统使用协议
查看>>
CRMEB小程序安装说明
查看>>