La posizione è un compito difficile da fare, quando hai una durata della batteria limitata e quando non c'è segnale GPS negli edifici e in aree con molti edifici di grandi dimensioni, ecc. Ma Android lo rende molto più semplice. Quando richiedi una posizione, devi solo specificare di quale precisione hai bisogno.
Se si specifica che si desidera che un accuracy
per un esempio *100 meters*
, Android cercherà di ottenere la posizione e se si può ottenere una posizione per la precisione 70 metri, verrà restituito a voi, ma se Android può ottenere una posizione con una precisione superiore a 100 metri, la tua applicazione attenderà e non riceverà nulla finché non sarà disponibile una posizione con tale precisione.
In genere Android prima otterrà l'ID cella e poi lo invierà al server di Google, che mappa tali ID cella e il server restituirà una latitudine e una longitudine con una precisione che è bassa per un esempio 1000 metri. A questo punto Android proverà anche a vedere tutte le reti WiFi nell'area e invierà anche informazioni su di loro al server di Google e se possibile il server di Google restituirà una nuova posizione con maggiore precisione per un esempio 800 metri.
A questo punto il GPS sarà acceso. Il dispositivo GPS necessita di almeno 30 secondi da un avvio a freddo per ottenere una correzione, quindi se può ottenere una correzione restituirà latitudine e longitudine ma ancora con una precisione, che sarà la più alta possibile per un esempio 100 metri. Più a lungo funziona il GPS, migliore sarà la precisione.
Avviso importante: i primi due metodi richiedono una connessione Internet. Se non è presente una connessione dati, dovrai attendere il GPS, ma se il dispositivo si trova in un edificio, probabilmente non otterrai alcuna posizione.