Stavo giusto per riportare i miei risultati qui; come vedete ho riportato io la questione su XDA e ci sono anche le mie risposte
qui.
Cerco di fare un po di ordine.
I problemi al GPS possono essere divisi in tre categorie:
Problemi di segnale
Il chip GPS non ottiene un buon livello di segnale, a causa di:
- antenna non adeguata
- antenna non ben posizionata
- sottosistema GPS guasto
L'app
GPS Test non mostra alcun satellite, oppure quelli visibili hanno un segnale molto basso.
In questo caso (molto raro) c'è poco da fare e
nessuna app può aiutare: se il guasto è hardware bisogna ricorrere all'assistenza del produttore.
Per la mia esperienza la ricezione GPS del THL5000 è ottima; io ho sempre almeno 6 satelliti con segnale ottimo, anche indoor.
Il mio precedente Zopo ZP300+, invece, aveva un segnale sempre insufficiente tranne che in campo aperto.
Fix lento
Questa è la situazione più frequente.
Abbiamo già escluso problemi all'antenna o all'hardware GPS, il segnale dei satelliti visibili è buono, ma
GPS Test mostra le barre tutte in grigio, oppure sono mostrati pochi satelliti (o nessuno) e il tempo per ottenere un fix (barre gialle/verdi) è lunghissimo.
E' dovuta al fatto che (detto in parole povere) il chip GPS deve stare in ascolto di tutti i satelliti e cercare di identificarli e triangolarli senza sapere chi sono invece che concentrarsi su quelli che dovrebbero essere in vista in base alla nostra posizione.
In questo caso vengono in aiuto le innumerevoli app EPO/APGS che in pratica servono a velocizzare il fix scaricando i dati EPO, ossia le "posizioni note" dei satelliti in vista.
Grazie a questi dati il fix dovrebbe essere più veloce.
Posizione instabile
In pratica: fix veloce, segnale ottimo e stabile... posizione ballerina e imprecisa.
E' legato sia alla precisione della bussola (che porta il software di navigazione a credere che abbiamo svoltato quando invece non è vero) ma anche e soprattutto alla modalità di interpretazione dei dati GPS.
Le app EPO/APGS
anche in questo caso non servono a nulla: il fix è già stato ottenuto e la posizione è agganciata.
---
Detto ciò, il mio THL5000
ricadeva nell'ultima categoria, così come buona parte di quelli dei post precedenti.
Con Sygic avevo di continuo messaggi tipo "hai superato il limite di velocità di 150km/h", dovuti al fatto che tra una lettura e l'altra la posizione "saltava" di centinaia di metri.
Il primo mio sospetto fu che il cmapionamento della posizione fosse troppo lento, da qui l'idea di mettere la CPU a pieno regime.
Poi ho trovato quel post su XDA dove il problema viene affrontato all'origine, ossia sulla macchina virtuale Dalvik.
ATTENZIONE
Questa modifica è pericolosa e potrebbe portare ad un boot-loop, dal quale si esce solo con una recovery (tipo TWRP) oppure riflashando la ROM.
Fate quindi un backup completo del telefono prima di proseguire.
Il telefono deve inoltre avere i diritti di root.
In pratica si tratta di modificare il file /system/build.prop aggiungendo la linea
codice:
dalvik.vm.execution-mode=int:fast
subito dopo la linea esistente
codice:
dalvik.vm.stack-trace-file=/data/anr/traces.txt
quindi riavviare.
In realtà la nuova linea potrebbe essere aggiunta ovunque, ma metterla lì manterrà le cose ordinate.
La modifica può essere fatta usando una delle tante app che lo permettono, oppure usando un filemanager tipo ES File Explorer.
!!! IMPORTANTE !!!
Prima di riavviare il telefono controllare i permessi del file /system/build.prop.
Quelli originali sono rwx-rw-rw-, se fossero diversi occorre reimpostarli altrimenti il telefono continuerà a riavviarsi (boot-loop).
La mia esperienza è stata molto positiva: aumentando la velocità di lettura del GPS (ossia quanto frequentemente la posizione viene chiesta al chip GPS) le app di navigazioni risultano molto più stabili ed ora, appena esco da una rotonda, il navigatore (Sygic ma anche Waze e Maps) mi mostra subito sulla strada corretta senza più salti.
Inoltre non ho notato un aumento apprezzabile del consumo della batteria.