Guía de desarrollo

Local Navigation

Cambiar los criterios para recibir información de ubicación

Puede utilizar una instancia de la clase LocationProvider para cambiar automáticamente los criterios que se utilizan para seguir la ubicación de un dispositivo BlackBerry.

  1. Importe las clases e interfaz necesarias.
    import net.rim.device.api.gps.GPSInfo;
    import javax.microedition.location.*;
  2. Cree una clase y un constructor.
    public class handleGPS
    {
       public handleGPS(int gpsMode)
       {
       }
    }
  3. En la clase, defina campos estáticos para el proveedor de ubicación, la latitud, la longitud, la altitud, la velocidad y el rumbo.
    static LocationProvider locationProvider;
    static double lat, lon;
    static float  alt, spd, crs;
  4. En el constructor, agregue un bloque de código para establecer una instancia LocationProvider y cambiar a un método diferente de seguimiento de la ubicación. Invoque reset() en el objeto LocationProvider y, a continuación, establezca el servicio de escucha de ubicaciones en null para deshabilitarlo.
    if (locationProvider != null)
    {
        locationProvider.reset();
        locationProvider.setLocationListener(null, -1, -1, -1);
    }
  5. En el constructor, cree y configure un objeto Criteria basado en el modo GPS que se pasa como un parámetro al constructor.
    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. En el constructor, cree un bloque try/catch. En este bloque, cree una instancia de la clase LocationListener invocando getInstance() y pasando el objeto Criteria como un parámetro. Especifique un servicio de escucha de ubicaciones para administrar las actualizaciones de ubicación GPS.
    try
    {
       locationProvider = LocationProvider.getInstance(myCriteria);
       if (locationProvider != null)
       {
          locationProvider.setLocationListener
            (new myLocationListener(), -1, -1, -1);
       }
    }
    catch (Exception err)
    {}
  7. En la clase, cree una clase estática privada que implemente la interfaz LocationListener. Recupere la información de ubicación actual en el método locationUpdated(). Cree una implementación básica del método providerStateChanged() para controlar el estado de 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)
       {}
    }

¿Le ha resultado útil esta información? Envíenos sus comentarios.