實時獲取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;
    }


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章