栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

android获取电池信息;android获取电池容量、技术、电压、电量、温度等信息

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

android获取电池信息;android获取电池容量、技术、电压、电量、温度等信息

android获取电池信息;android获取电池容量、技术、电压、电量、温度等信息

public class BatteryUtil {
    private static final String TAG = "BatteryUtil";
    private static String technology;
    private static int voltage;
    private static int level;
    private static double temperature;
    private static String status;
    private static String health;
    private static String plugged;

    
    public static String getBatteryCapacity(Context context) {
        Object mPowerProfile;
        double batteryCapacity = 0;
        final String POWER_PROFILE_CLASS = "com.android.internal.os.PowerProfile";
        try {
            mPowerProfile = Class.forName(POWER_PROFILE_CLASS)
                    .getConstructor(Context.class)
                    .newInstance(context);

            batteryCapacity = (double) Class
                    .forName(POWER_PROFILE_CLASS)
                    .getMethod("getBatteryCapacity")
                    .invoke(mPowerProfile);

        } catch (Exception e) {
            e.printStackTrace();
        }

        return String.valueOf(batteryCapacity);
    }

    
    public static void  ReceiverBatteryOhterInfo(Context context) {
        IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
        Intent receiver = context.registerReceiver(null, filter);

        technology =receiver.getStringExtra("technology"); //获取电池技术
        if(technology.equals("") || technology.equals(null)){
            technology="Unknown";
        }
        voltage = receiver.getIntExtra("voltage", 0); //获取电压(mv)
        level = receiver.getIntExtra("level", 0); //获取当前电量
        temperature = receiver.getIntExtra("temperature", 0)/10.0; //获取温度(数值)并转为电池摄氏温度

        //电池状态
        switch (receiver.getIntExtra("status",0)){
            case BatteryManager.BATTERY_HEALTH_UNKNOWN:
                status="未知";
                break;
            case BatteryManager.BATTERY_STATUS_CHARGING:
                status="充电中";
                break;
            case BatteryManager.BATTERY_STATUS_DISCHARGING:
                status="放电中";
                break;
            case BatteryManager.BATTERY_STATUS_NOT_CHARGING:
                status="未充电";
                break;
            case BatteryManager.BATTERY_STATUS_FULL:
                status="电池满";
                break;
        }
        android.util.Log.d(TAG,"status:"+status);

        //电池健康情况
        switch (receiver.getIntExtra("health",0)){
            case BatteryManager.BATTERY_HEALTH_UNKNOWN:
                health="未知";
                break;
            case BatteryManager.BATTERY_HEALTH_GOOD:
                health="良好";
                break;
            case BatteryManager.BATTERY_HEALTH_OVERHEAT:
                health="过热";
                break;
            case BatteryManager.BATTERY_HEALTH_DEAD:
                health="没电";
                break;
            case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE:
                health="过电压";
                break;
            case BatteryManager.BATTERY_HEALTH_COLD:
                health="温度过低";
                break;
            case BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE:
                health="未知错误";
                break;
        }
        android.util.Log.d(TAG,"health:"+health);

        //充电类型
        switch (receiver.getIntExtra("plugged",0)){
            case BatteryManager.BATTERY_PLUGGED_AC:
                plugged="充电器";
                break;
            case BatteryManager.BATTERY_PLUGGED_USB:
                plugged="USB";
                break;
            case BatteryManager.BATTERY_PLUGGED_WIRELESS:
                plugged="无线充电";
                break;
            default:
                plugged="未充电";
                break;
        }
        android.util.Log.d(TAG,"plugged:"+plugged);
    }
}

参考:https://blog.csdn.net/su749520/article/details/80655708

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号