Come disattivare l’avviso ‘La batteria è scarica’ (che suggerisce ‘battery saver’) in Android Marshmallow

BACKGROUND

In Android, la notifica Battery Low Alert è incorporata nel sistema operativo ad un livello che rende impossibile disattivarla attraverso qualsiasi impostazione o applicazione sviluppata per Android.

Questo non significa che non possa essere disattivata. Significa solo che noi utenti finali non possiamo farlo ed è impossibile creare un'applicazione per Android che lo faccia.

Il modo in cui può essere fatto è personalizzando Android. Come questione pratica, quasi nessuno può farlo, ma alcune persone possono farlo.

Ecco un modo per suddividere la cosa in passi:

PASSO 1: Scaricare il codice sorgente di Android, installarlo su un computer configurato per sviluppare/programmare il sistema Android. Questo è diverso dalla configurazione di Android per lo sviluppo di app. Per lo sviluppo di app, Android viene usato così com'è, non personalizzato, ma usato come punto di partenza. Le app sono fatte scrivendo programmi che dicono ad Android di fare delle cose. Se Android non può fare qualcosa, neanche le app possono farla.

Quindi, per quanto possa sembrare strano, una delle cose che Android non può fare è trattenersi dal generare la notifica di batteria scarica. La particolare percentuale di carica in cui entra in vigore è incorporata nel telefono e non può essere cambiata senza personalizzare Android.

La fase 1 è quella in cui il codice sorgente di Android viene messo in un computer dove può essere modificato e usato per costruire un'edizione personalizzata di Android. Tipicamente, questo passo è fatto dai venditori di telefoni. Poiché Android è open source, il codice sorgente è disponibile a chiunque.

STEP 2: trovare il punto nel codice sorgente Android dove viene generato l'allarme. Moderatamente facile, a condizione che il passo 1 sia stato fatto. Non ho un sistema con il codice sorgente Android. Tuttavia, ho trovato questo codice Android di esempio che spara una "trasmissione" di sistema della condizione di batteria scarica. Lo sto includendo per darvi un'idea di come sia il codice. Ho aggiunto un commento, che inizia con due slash, come questo //, per mostrare come questo codice potrebbe essere modificato per disattivare il Battery Low Broadcast, ma la trasmissione non è la stessa dell'allarme/popup. La trasmissione innesca molte cose; la notifica di batteria scarica è una di quelle cose.

  1. /* La trasmissione ACTION_BATTERY_LOW viene inviata in queste situazioni: 
  2. * - is just un-plugged (previously was plugged) and battery level is 
  3. * less than or equal to WARNING, or 
  4. * - is not plugged and battery level falls to WARNING boundary 
  5. * (becomes <= mLowBatteryWarningLevel). 
  6. */ 
  7. final boolean sendBatteryLow = !plugged 
  8. && mBatteryStatus != BatteryManager.BATTERY_STATUS_UNKNOWN 
  9. && mBatteryLevel <= mLowBatteryWarningLevel 
  10. && (oldPlugged || mLastBatteryLevel > mLowBatteryWarningLevel); 
  11.  
  12. ... 
  13. // TO TURN OFF BATTERY LOW BROADCAST, DELETE THE FOLLOWING 
  14. if (sendBatteryLow) { 
  15. mSentLowBatteryBroadcast = true; 
  16. statusIntent.setAction(Intent.ACTION_BATTERY_LOW); 
  17. mContext.sendBroadcast(statusIntent); 

La trasmissione è un messaggio all'interno di Android che attiva molte azioni in Android. Il pop up di avviso Battery Low è solo una di queste azioni. Quindi quello che dobbiamo trovare nel codice sorgente è l'avviso/popup, non la trasmissione.

STEP 3: cambiare il codice sorgente in modo da eliminare l'avviso. Il passo più semplice del processo. Questo sarebbe un cambiamento molto piccolo nel sistema generale.

STEP 4: "Costruire" (compilare) Android con le modifiche al codice sorgente fatte nel passo 3. Da moderatamente facile a molto difficile, a seconda della completezza del lavoro fatto nel passo 1. È facile ottenere il codice sorgente e fare la modifica. Farlo in modo che il sistema possa essere ricompilato è molto più complesso. Le persone che lavorano su Android per Google o sulle sue varianti per aziende del calibro di Samsung, AT&T, Verizon, ecc, lo fanno tutto il tempo e per loro è facile, ma ci vuole molto per arrivare in quella posizione a meno che tu non sia uno di loro, con accesso ai loro sistemi, le password necessarie, e la direzione tecnica di coloro che hanno percorso questo sentiero prima di noi.

Passo 5: Installa la tua versione personalizzata di Android sul tuo telefono. A seconda del modello di telefono che avete, questo potrebbe essere impossibile. Lo scenario migliore è simile al processo di costruzione del passo 4. Nel passo 4, Android viene costruito su un computer di sviluppo, che in generale è più facile che costruirlo su un telefono. Una volta costruito sul computer di sviluppo, metterlo sul telefono richiede di affrontare le sfide tecniche costruite nell'hardware del telefono. Per esempio, penso che sarebbe impossibile installare un androide personalizzato su un telefono Droid Turbo 2 di Motorola. Sarebbe molto più facile installarlo su un telefono Nexus. Da difficile a impossibile, il punto 5 comporterà un'agonia nel migliore dei casi.

Che cosa significa questo

In pratica, non c'è niente che io o voi possiamo fare per fermare il messaggio di batteria scarica. Se dovessi scommettere, scommetterei che l'avviso di batteria scarica sopravviverà ad ogni persona che accede a quora oggi.

D'altra parte, se i nostri amici di Google volessero fare questo cambiamento, lo sforzo richiesto sarebbe circa lo stesso che aprire il tuo curriculum su un elaboratore di testi e correggere l'ortografia di uno dei posti in cui hai lavorato. La ragione per cui è così semplice per Google è che devono solo fare una semplice modifica al codice sorgente, che è come modificare il curriculum. Hanno già tutti gli altri passi impostati, in esecuzione per lo più con il pilota automatico che non devono toccare.