How is the Android battery health determined?

前端 未结 3 1978
无人及你
无人及你 2020-12-17 02:52

I am not talking about how to read the value.

Rather, I am interested in how the value of BatteryManager.EXTRA_HEALTH is being set.

Does it come from the fir

3条回答
  •  一整个雨季
    2020-12-17 03:35

    By using this code you can get information regarding battery..

    private BroadcastReceiver battery_receiver = new BroadcastReceiver()
    {
        @Override
        public void onReceive(Context context, Intent intent)
        {
            boolean isPresent = intent.getBooleanExtra("present", false);
            String technology = intent.getStringExtra("technology");
            int plugged = intent.getIntExtra("plugged", -1);
            int scale = intent.getIntExtra("scale", -1);
            int health = intent.getIntExtra("health", 0);
            int status = intent.getIntExtra("status", 0);
            int rawlevel = intent.getIntExtra("level", -1);
            int level = 0;
            String temp=null;
    
            Bundle bundle = intent.getExtras();
    
            Log.i("BatteryLevel", bundle.toString());
    
            if(isPresent)
            {
                if (rawlevel >= 0 && scale > 0) {
                    level = (rawlevel * 100) / scale;
                }
    
                String info = "Battery Level: " + level + "%\n";
    
                info += ("Technology: " + technology + "\n");
                info += ("Plugged: " + getPlugTypeString(plugged) + "\n");
                info += ("Health: " + getHealthString(health) + "\n");
                info += ("Status: " + getStatusString(status) + "\n");
                info += ("Temp: "+getTempStatus(temp,intent)+"\n");
    
                setBatteryLevelText(info + "\n\n" + bundle.toString());
            }
            else
            {
                setBatteryLevelText("Battery not present!!!");
            }
        }
    };
    private void registerBatteryLevelReceiver(){
        IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
    
        registerReceiver(battery_receiver, filter);
    }
    

提交回复
热议问题