Perché su Xiaomi la simulazione si disattiva da sola in background?
MIUI e HyperOS (Xiaomi, Redmi, POCO) chiudono le app in background in modo più aggressivo di altri. Attiva l’avvio automatico per Mock Location e togli le limitazioni della batteria: l’app lo suggerisce al primo avvio.
La simulazione è mantenuta da un servizio in background e «si è disattivata da sola» significa quasi sempre che la ROM l’ha chiuso. Nei log di sistema appare come un arresto forzato del processo da parte del sistema, non come un errore dell’app.
Poi succede una cosa poco ovvia: i provider di test restano registrati in Android con l’ultimo valore scritto, ma nessuno ci scrive più nuove coordinate, perché il processo che li ha creati non esiste più. Da fuori sembra che «la simulazione si sia bloccata»: il punto resta lo stesso ma smette di aggiornarsi e dopo un po’ il sistema restituisce la posizione reale. Per questo spesso il problema non si nota subito.
Chi ha uno Xiaomi, Redmi o POCO ci si imbatte più spesso: MIUI e HyperOS gestiscono i processi in background in modo più rigido degli altri. Si risolve con tre impostazioni: avvio automatico, rimozione delle limitazioni della batteria e blocco dell’app tra le recenti; la procedura con i percorsi esatti è nella guida dedicata a Xiaomi. Se ne fai solo una delle tre, scegli l’avvio automatico: senza di esso, dopo la chiusura del processo il sistema non riavvierà affatto il servizio e la simulazione non tornerà finché non apri tu l’app. Con l’avvio automatico attivo, il sistema riavvia il servizio in pochi secondi, l’app recupera lo stato salvato e continua senza il tuo intervento.
Su Samsung la causa è la stessa, ma il meccanismo si chiama «App in sospensione»: One UI mette automaticamente in sospensione ciò che non usi da un po’ e un’app di simulazione sembra inattiva proprio mentre il telefono è in tasca. I percorsi per One UI sono nella guida per Samsung. Su Huawei e Honor disattiva la gestione automatica dell’avvio e attiva tutti e tre gli interruttori: avvio automatico, avvio secondario ed esecuzione in background; i dettagli sono nella guida per Huawei.
Da parte sua l’app fa due cose indipendenti. Quando viene aperta, confronta lo stato salvato con quello reale e, se il processo è morto, ripristina la simulazione: questa via funziona sempre. Inoltre un timer di controllo verifica periodicamente lo stato in background e prova a ripristinare il servizio da solo. Ma entrambe hanno un limite: se la ROM vieta all’app di avviarsi in background, il servizio non può tornare senza di te, perché in quel momento il codice semplicemente non viene eseguito. Per questo le impostazioni della ROM non si possono sostituire via software.
Il modo più semplice per verificare il risultato è la notifica permanente nell’area notifiche: finché c’è, il servizio è vivo. Se è sparita, il sistema l’ha chiuso comunque ed è il caso di tornare alle impostazioni descritte sopra.