Guida allo sviluppo

Local Navigation

Recupero delle informazioni sulla posizione utilizzando la classe Location

È possibile richiedere un fix GPS e recuperare quindi la latitudine, la longitudine, la velocità, la rotta, l'orario e il numero dei satelliti rilevati dal dispositivo BlackBerry.

  1. Importare le classi richieste.
    import javax.microedition.location.*;
  2. Creare una classe e un costruttore.
    public class handleGPS
    {
        public handleGPS()
        {
        }
    }
  3. Nella classe, dichiarare campi statici per un thread e per ciascun elemento delle informazioni sulla posizione che viene recuperato.
    static GPSThread gpsThread;
    static double latitude;
    static double longitude;
    static float  heading;
    static float  velocity;
    static long   timeStamp;
    static String nmeaString;
  4. Nel costruttore, creare e avviare un thread.
    gpsThread = new GPSThread();
    gpsThread.start();
  5. Nella classe creare una classe statica privata che estenda Thread, quindi creare un metodo run().
    private static class GPSThread extends Thread
    {
       public void run()
       {
       }
    }
  6. In run(), creare un'istanza della classe Criteria. Richiamare setCostAllowed(false) per specificare la modalità autonoma.
    Criteria myCriteria = new Criteria();
    myCriteria.setCostAllowed(false);
  7. In run(), creare un blocco try/catch. In questo blocco, creare un'istanza della classe LocationProvider ottenendo un'istanza dell'oggetto Criteria. Creare un blocco try/catch all'interno di questo blocco e creare un'istanza della classe Location per recuperare l'attuale fix GPS prevedendo un timeout di 300 secondi. Compilare i campi e specificare il numero di satelliti richiamando getExtraInfo("application/X-jsr179-location-nmea").
    try
    {
       LocationProvider myLocationProvider =
          LocationProvider.getInstance(myCriteria);
       try
       {
          Location myLocation = myLocationProvider.getLocation(300);
          latitude   = myLocation.getQualifiedCoordinates().getLatitude();
          longitude  = myLocation.getQualifiedCoordinates().getLongitude();
          velocity   = myLocation.getSpeed();
          heading    = myLocation.getCourse();
          timeStamp  = myLocation.getTimestamp();
          nmeaString = myLocation.getExtraInfo
             ("application/X-jsr179-location-nmea");
       }
       catch ( InterruptedException iex )
       {}
       catch ( LocationException lex )
       {}
    }
    catch ( LocationException lex )
    {}
    return;

Le informazioni sono state utili? Inviateci i vostri commenti.