Problemi di funzionamento su Android: le App protette

Nei dispositivi della famiglia Huawei (e forse anche di qualche altro produttore), sotto le Impostazioni troviamo il menu “App protette” e – se non configuriamo opportunamente le App all’interno dello stesso – alcune non funzioneranno a dovere oppure non riceveremo le notifiche. Vediamo cosa significa “App protetta”, quali sono i tipici problemi riscontrati e come fare per risolverli

Ci sono App che sono progettate per dover funzionare in background, cioè anche quando lo schermo del dispositivo è spento (dispositivo in standby) oppure quando stiamo utilizzando un’altra applicazione. Pensiamo ad esempio all’App Facebook, che prosegue l’invio di un’immagine che abbiamo postato anche quando usciamo dall’applicazione ed aggiorna le notifiche di conseguenza: se per qualche motivo negassimo all’applicazione il permesso di lavorare in background, essa si “congelerebbe” una volta usciti e interromperebbe tutte le operazioni in corso d’esecuzione. Altre applicazioni invece utilizzano il funzionamento in background per inviare e ricevere dati da un server, inviare le notifiche all’utente e altre funzioni.

Comprendiamo che è importante capire quali siano le App che devono funzionare in background per fornirci la corretta esperienza utente. Premetto che questa caratteristica l’ho trovata nei dispositivi della famiglia Huawei e non so se viene adottata anche da altri produttori, data però l’enorme diffusione dei dispositivi Huawei è necessario che sia ben nota sia agli utenti Huawei che agli sviluppatori.

Premetto inoltre che a mio parere è una funzionalità che crea più problemi che vantaggi, almeno per come è adottata da Huawei, dopo spiegherò meglio il perché e come potrebbe essere migliorata.

Cosa significa App protetta?

L’App viene definita protetta quando ha il permesso di esecuzione in background, cioè – come già scritto in precedenza – quando lo schermo del dispositivo è spento oppure quando stiamo utilizzando un’altra applicazione. L’elenco delle App protette si presenta come nella seguente schermata:

screenshot_2016-10-23-09-17-10

Se deselezioniamo una delle opzioni, ci verrà mostrato a schermo un messaggio a scomparsa (detto Toast) con il seguente testo:

l’App “XYZ” verrà chiusa dopo lo spegnimento dello schermo

Il grande problema è che tutte le App che devono funzionare in background, vengono disattivate di default e dobbiamo andarle ad abilitare successivamente dal menu”App Protette” (sempre se ci ricordiamo di farlo o se ci accorgiamo che qualcosa non va nel funzionamento dell’App).

In realtà, dopo un po’ di tempo, quando usiamo l’applicazione ed usciamo da questa, Huawei ci informa con una notifica che l’App sta consumando dati in background e l’utente ha la possibilità di consentire o impedire questo consumo di dati: tuttavia il tono “minaccioso” del messaggio porta l’utente – soprattutto se poco esperto – a non concedere questo permesso per il funzionamento in background.

Il problema principale per lo sviluppatore

Lo sviluppatore che realizza un’App che deve funzionare in background, si troverà quindi il problema che la maggior parte degli utenti Huawei non potrà utilizzare le funzionalità proprie del background.

Quindi, come risolvere il problema?

A mio avviso, la politica delle App protette andrebbe rivista dal produttore in questo modo:

  • abilitando di default il background per tutte le App;
  • monitorando il consumo di energia e dati per le App di nuova installazione;
  • avvisare l’utente se il consumo supera una soglia di attenzione, soglia che può essere impostata di default a valori ragionevoli ed eventualmente modificata dall’utente.

Nel frattempo, se il produttore non porrà rimedio a questa situazione, occorre fare qualcos’altro lato sviluppatore. Ecco un paio di idee:

  1. Soluzione semplice (ma forse poco efficace): informare l’utente, nella documentazione dell’App o tramite un messaggio di qualche genere, di abilitare l’App come protetta.
  2. Soluzione più complessa: tenere traccia dell’ultima esecuzione del service in background e, se si rileva che l’ultima esecuzione del service è in notevole ritardo rispetto agli intervalli pianificati, alla prima apertura dell’App si informa l’utente che l’App deve essere abilitata nelle App protette.

Personalmente sto riscontrando tale problema nelle App che ho sviluppato e devo dire che la percentuale di App con background bloccato è piuttosto elevata: credo che adotterò presto la soluzione 2 ed aggiornerò questo stesso articolo con i risultati.

Lascia un commento