Se volete sviluppare applicazioni location-based per Android, potrà tornarvi utile l’emulazione di Location Providers (tecnologie usate per determinare la posizione corrente del dispositivo).

Ci sono due modi per aggiornare la vostra posizione virtuale: uno tramite DDMS e uno tramite prompt dei comandi.

Metodo 1

Nel primo caso andate sulla “DDMS perspective” di Eclipse e, sulla scheda “Emulator Control” a sinistra, cercate i “Location Controls” (sotto “Telephony Status” e “Telephony Actions”). Qui potrete specificare longitudine e latitudine manualmente o caricare file GPX o KML per simulare spostamenti (per creare un file KML potete usare anche Google Earth).

ATTENZIONE (aggiornamento)!

Se il metodo appena descritto non funziona, nel senso che:

  • nonostante inviate le nuove coordinate, queste risultano essere sempre [0,0]
  • e se, ad esempio usando il programma “Maps”, la schermata è tutta blu (non vi preoccupate, siete solo nell’oceano Atlantico [0, 0], accanto all’Africa… fate un bel po’ di “zoom -” e capirete…)

potete provare a fare una modifica al file “eclipse.ini” contenuto nella directory principale di Eclipse. Quindi:

  • chiudete Eclipse se era in esecuzione
  • cercate nella directory di Eclipse il file “eclipse.ini”
  • apritelo con un editor di testo
  • in fondo, aggiungete le righe:
-Duser.country=US
-Duser.language=en
  • salvate il file
  • riaprite Eclipse e provate se tutto funziona :)

In poche parole, l’errore era dovuto all’uso della virgola al posto del punto nelle coordinate!

Metodo 2

Un altro modo per aggiornare la vostra posizione virtuale è quella di aprire il prompt dei comandi e lanciare:

telnet localhost 5554

Sul terminale comparirà:

Android Console: type 'help' for a list of commands
OK

N.B.: se al posto della scritta di sopra non compare niente o appare il messaggio:
“Connessione a localhost…Impossibile aprire una connessione con l’host. sulla porta 5554: Connessione non riuscita”
significa che la porta del vostro virtual device non è la 5554. Per trovarla basta guardare la barra in alto della finestra del vostro simulatore che riporterà ad esempio “5556:MyDevice”. Quindi ripetete il comando utilizzando la nuova porta.

A questo punto digitare le coordinate che volete simulare, ad esempio:

geo fix 12.4924378 41.8893726 0

Premete invio e verrà stampato un “OK”.

Se l’applicazione che avete creato rileva la posizione corrente, vedrete che questa cambierà seguendo le nuove coordinate.

Attenzione, se avete fatto errori di digitazione, molto probabilmente, verrà restituito l’errore:

KO: unknown command, try 'help'

oppure:

KO: argument '0210 355327 0' is not a number

Al posto di ‘0210 355327 0’ compariranno altri numeri in base a quello che avete digitato.