Guia do desenvolvedor

Local Navigation

Recuperar informações de localização usando a classe Location

Você pode solicitar um ponto de GPS e então carregar a latitude, a longitude, a velocidade, a direção, a data e a hora e o número de satélites que o aparelho BlackBerry está rastreando.

  1. Importe as classes necessárias.
    import javax.microedition.location.*;
  2. Crie uma classe e um construtor.
    public class handleGPS
    {
        public handleGPS()
        {
        }
    }
  3. Na classe, defina campos estáticos para um thread e para cada item de informação de localização que você recuperar.
    static GPSThread gpsThread;
    static double latitude;
    static double longitude;
    static float  heading;
    static float  velocity;
    static long   timeStamp;
    static String nmeaString;
  4. No construtor, crie e inicie um thread.
    gpsThread = new GPSThread();
    gpsThread.start();
  5. Na classe, crie uma classe estática privada que estende Thread e cria um método run().
    private static class GPSThread extends Thread
    {
       public void run()
       {
       }
    }
  6. Em run(), crie uma instância da classe Criteria. Invoque setCostAllowed(false) para especificar o modo autônomo.
    Criteria myCriteria = new Criteria();
    myCriteria.setCostAllowed(false);
  7. Em run(), crie um bloco try/catch. Nesse bloco, crie uma instância da classe LocationProvider recebendo uma instância do objeto Criteria. Crie um bloco try/catch dentro desse bloco e crie uma instância da classe Location para carregar o ajuste atual de GPS, incluindo expiração de limite de tempo de 300 segundos. Preencha os campos e especifique o número de satélites invocando 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;

Estas informações foram úteis? Gostaríamos de receber seus comentários.