实时获取Android 各版本电量的统一方法

本文提供了两种在Android设备上获取电池剩余容量的方法。第一种适用于所有API级别,通过注册BroadcastReceiver来监听电池状态变更并计算百分比。第二种仅适用于API 21及以上版本,直接调用BatteryManager的getIntProperty方法获取电池容量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:https://blog.youkuaiyun.com/qijian0503/article/details/81910342

亲测可用

 上运行结果图

上代码

    /**
     *  实时获取电量
     */
    public static int getSystemBattery(Context context){
        int level = 0;
        Intent batteryInfoIntent = context.getApplicationContext().registerReceiver(null,
                new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
        level = batteryInfoIntent.getIntExtra("level",0);
        int batterySum = batteryInfoIntent.getIntExtra("scale", 100);
        int percentBattery= 100 *  level / batterySum;
        Log.i(ControlerInfo.LogTag,"level = " + level);
        Log.i(ControlerInfo.LogTag,"batterySum = " + batterySum);
        Log.i(ControlerInfo.LogTag,"percent is " +  percentBattery+ "%");
        return percentBattery;
    }


以上代码主要是在注册接收者时,注册了一个空对象进去了,所以也不需要进行注销动作,这样便达到了在只需要简单的电量参数时,调用此方法就行,不需要将具体代码写进广播接收者中去。亲测在低于21 的API 中有效及高于21的 API 中也是可用的。

 

方式二:

public static int getBatteryRemainingCapacity(Context context){
        int batteryRemainingCapacity = 1;
        if(Build.VERSION.SDK_INT >= 21){
            BatteryManager batteryManager = (BatteryManager)context.getSystemService(Context.BATTERY_SERVICE);
            batteryRemainingCapacity = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
        }
        return batteryRemainingCapacity;
    }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值