Guía de desarrollo

Local Navigation

Administrar errores (extensiones de BlackBerry para JSR 179)

Puede comprobar el estado de una solicitud de punto de posición GPS invocando el método getStatus() que se ofrece en las extensiones de BlackBerry para JSR 179. Si el valor devuelto es BlackBerryLocation.GPS_ERROR, puede recuperar el valor del error invocando BlackBerryLocation.getError().
  1. Importe las clases y las interfaces necesarias.
    import net.rim.device.api.gps.*;
    import javax.microedition.location.*;
  2. Cree una clase y un constructor.
    public class handleGPS
    {
        public handleGPS()
        {
        }
    }
  3. En el constructor, cree un bloque try/catch. En este bloque, cree una instancia de la clase BlackBerryCriteria pasando el modo GPS al constructor.
    try
    {
        BlackBerryCriteria myCriteria =
          new BlackBerryCriteria(GPSInfo.GPS_MODE_ASSIST);
    }
    catch ( UnsupportedOperationException ex )
    {
        return;
    }
  4. En el bloque try/catch, cree otro bloque try/catch. En este bloque, cree una instancia de la clase BlackBerryLocationProvider recuperando el objeto BlackBerryCriteria. Invoque setLocationListener() para especificar el servicio de escucha de ubicaciones.
    try
    {
        BlackBerryLocationProvider myProvider =
            (BlackBerryLocationProvider)LocationProvider.getInstance(myCriteria);
        myProvider.setLocationListener(new myLocationListener(), -1, -1, -1);
    }
    catch ( LocationException lex )
    {
        return;
    }
  5. En la clase, cree una clase estática que implemente LocationListener. Implemente locationUpdated() y providerStateChanged().
    private static class myLocationListener implements LocationListener
    {
        public void locationUpdated(LocationProvider provider, Location location)
        {
        }
        public void providerStateChanged(LocationProvider provider, int newState)
        {
        }
    }
  6. En locationUpdated(), comprueba si el parámetro location es una instancia de BlackBerryLocation. Si es así, cree un objeto BlackBerryLocation local pasando el parámetro location. Invoque getStatus() para recuperar el estado de la solicitud de ubicación GPS y después, procese el estado devuelto.
    if (location instanceof BlackBerryLocation)
    {
        BlackBerryLocation bLoc = (BlackBerryLocation)location;
        switch(bLoc.getStatus())
        {
            case BlackBerryLocation.GPS_ERROR:
                int gpsStatus = bLoc.getError();
                break;
            case BlackBerryLocation.FAILOVER_MODE_ON:
            case BlackBerryLocation.SUBSEQUENT_MODE_ON:
            case BlackBerryLocation.GPS_FIX_PARTIAL:
            case BlackBerryLocation.GPS_FIX_COMPLETE:
                break;
        }
    }

Ejemplo de código: Administrar errores (extensiones de BlackBerry para JSR 179)

import net.rim.device.api.gps.*;
import javax.microedition.location.*;
public class handleGPS
{
    public handleGPS()
    {
        try
        {
            BlackBerryCriteria myCriteria =
              new BlackBerryCriteria(GPSInfo.GPS_MODE_ASSIST);
            try
            {
                BlackBerryLocationProvider myProvider =
                  (BlackBerryLocationProvider)
                    LocationProvider.getInstance(myCriteria);
                myProvider.setLocationListener
                  (new myLocationListener(), -1, -1, -1);
            }
            catch ( LocationException lex )
            {
                return;
            }
        }
        catch ( UnsupportedOperationException ex )
        {
            return;
        }
    }
    private static class myLocationListener implements LocationListener
    {
        public void locationUpdated
          (LocationProvider provider, Location location)
        {
            if (location instanceof BlackBerryLocation)
            {
                BlackBerryLocation bLoc = (BlackBerryLocation)location;
                switch(bLoc.getStatus())
                {
                    case BlackBerryLocation.GPS_ERROR:
                        int gpsStatus = bLoc.getError();
                        break;
                    case BlackBerryLocation.FAILOVER_MODE_ON:
                    case BlackBerryLocation.SUBSEQUENT_MODE_ON:
                    case BlackBerryLocation.GPS_FIX_PARTIAL:
                    case BlackBerryLocation.GPS_FIX_COMPLETE:
                        break;
                }
            }
        }
        public void providerStateChanged
          (LocationProvider provider, int newState)
        {
        }
    }
}

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