Molte sono le app sullo store, che bene o male gestiscono e ottimizzano la batteria, alcune semplicemente eliminando processi o chiudendo connessioni attive, altre invece realizzando una vera e propria combinazione di queste, abbinando l’uso ottimale della CPU e garantiscono risparmi energetici fino al 40%!
Ma qual’è la base di queste app?
Ebbene, la base di tutto è la “cattura” delle informazioni della batteria, quali, l’usura, la percentuale, se è in carica e molte altre info, attraverso queste si potrà poi ottimizzare l’uso della stessa attraverso una combinazione.
Ma vediamo in dettaglio come catturare queste info, e tenerle aggiornate in pochissimi passi!
Come prima cosa, bisogna conoscere cosa siano gli Intent, dato che il tutto è implementato tramite quelli.
private BroadcastReceiver batteryInfoReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int health= intent.getIntExtra(BatteryManager.EXTRA_HEALTH,0);
int lvl= intent.getIntExtra(BatteryManager.EXTRA_LEVEL,0);
int scale= intent.getIntExtra(BatteryManager.EXTRA_SCALE,0);
int temperature= intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);
int volt= intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE,0);
String tecnologia=intent.getStringExtra(BatteryManager.EXTRA_TECHNOLOGY);
int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
status == BatteryManager.BATTERY_STATUS_FULL;
}
};
Cosa fa il codice appena visto?
Non fa altro che creare un “BroacastReceiver”, ossia un ricevitore di informazioni che viene invocato quando vi è un aggiornamento delle informazioni, un po come gli OnClickListener dei pulsanti!
Per avviare tale ricevitore bisogna inserire nel punto in cui lanciarlo:
this.registerReceiver(this.batteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
Fatto ciò, quando la app verrà avviata, otterremo quelle informazioni, con cui potremo fare moltissime altre cose, queste informazioni tuttavia potrebbero non bastare, quindi Android ci mette a disposizione le API di “BatteryManager” consultabili QUI.