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

原文链接:https://blog.csdn.net/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;
    }


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值