Guia do desenvolvedor

Local Navigation

Alterar os critérios para receber informações de localização

Você pode usar uma instância da classe LocationProvider automaticamente para alterar o critério que é usado para controlar a localização de um aparelho BlackBerry.

  1. Importe as classes e interface necessárias.
    import net.rim.device.api.gps.GPSInfo;
    import javax.microedition.location.*;
  2. Crie uma classe e um construtor.
    public class handleGPS
    {
       public handleGPS(int gpsMode)
       {
       }
    }
  3. Na classe, defina campos estáticos para o provedor de localização, latitude, longitude, altitude, velocidade e curso.
    static LocationProvider locationProvider;
    static double lat, lon;
    static float  alt, spd, crs;
  4. No construtor, adicione um bloco de código para configurar uma instância LocationProvider para mudar para um método de rastreamento de local diferente. Invoque reset() no objeto LocationProvider e então defina o ouvinte da localização de null para desativar o ouvinte.
    if (locationProvider != null)
    {
        locationProvider.reset();
        locationProvider.setLocationListener(null, -1, -1, -1);
    }
  5. No construtor, crie e configure um objeto Criteria com base no modo de GPS que é fornecido como um parâmetro do construtor.
    Criteria myCriteria = new Criteria();
    myCriteria.setPreferredResponseTime(Criteria.NO_REQUIREMENT);
    myCriteria.setCostAllowed(true);
    if ( gpsMode == GPSInfo.GPS_MODE_AUTONOMOUS )
    {
        myCriteria.setCostAllowed(false);
    }
    else if ( gpsMode == GPSInfo.GPS_MODE_ASSIST )
    {
        myCriteria.setPreferredPowerConsumption(Criteria.POWER_USAGE_MEDIUM);
    }
    else
    {
        myCriteria.setPreferredPowerConsumption(Criteria.POWER_USAGE_LOW);
    }
  6. No construtor, crie um bloco try/catch. Neste bloco, crie uma instância da classe LocationListener invocando getInstance() e fornecendo o objeto Criteria como um parâmetro. Especifique um ouvinte de local para lidar com as atualizações de local do GPS.
    try
    {
       locationProvider = LocationProvider.getInstance(myCriteria);
       if (locationProvider != null)
       {
          locationProvider.setLocationListener
            (new myLocationListener(), -1, -1, -1);
       }
    }
    catch (Exception err)
    {}
  7. Na classe, crie uma classe estática privada que implemente a interface LocationListener. Carregue as informações de localização atual no método locationUpdated(). Crie uma implementação básica do método providerStateChanged() para monitorar o estado LocationProvider.
    private static class myLocationListener implements LocationListener
    {
       public void locationUpdated(LocationProvider provider, Location location)
       {
          lat = location.getQualifiedCoordinates().getLatitude();
          lon = location.getQualifiedCoordinates().getLongitude();
          alt = location.getQualifiedCoordinates().getAltitude();
          spd = location.getSpeed();
          crs = location.getCourse();
       }
       public void providerStateChanged(LocationProvider provider, int newState)
       {}
    }

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