Guida allo sviluppo

Local Navigation

Gestione degli errori (estensioni di BlackBerry che includono JSR 179)

È possibile controllare lo stato di una richiesta di fix GPS richiamando il metodo getStatus() fornito nelle estensioni di BlackBerry che includono JSR 179. Se il valore restituito è BlackBerryLocation.GPS_ERROR, è possibile recuperare il valore dell'errore richiamando BlackBerryLocation.getError().
  1. Importare le classi e le interfacce richieste.
    import net.rim.device.api.gps.*;
    import javax.microedition.location.*;
  2. Creare una classe e un costruttore.
    public class handleGPS
    {
        public handleGPS()
        {
        }
    }
  3. Nel costruttore, creare un blocco try/catch. In questo blocco creare un'istanza della classe BlackBerryCriteria passando la modalità GPS al costruttore.
    try
    {
        BlackBerryCriteria myCriteria =
          new BlackBerryCriteria(GPSInfo.GPS_MODE_ASSIST);
    }
    catch ( UnsupportedOperationException ex )
    {
        return;
    }
  4. Nel blocco try/catch, creare un altro blocco try/catch. In questo blocco creare un'istanza della classe BlackBerryLocationProvider recuperando l'oggetto BlackBerryCriteria. Richiamare setLocationListener() per specificare il listener posizioni.
    try
    {
        BlackBerryLocationProvider myProvider =
            (BlackBerryLocationProvider)LocationProvider.getInstance(myCriteria);
        myProvider.setLocationListener(new myLocationListener(), -1, -1, -1);
    }
    catch ( LocationException lex )
    {
        return;
    }
  5. Nella classe, creare una classe statica che implementi LocationListener. Implementare locationUpdated() e providerStateChanged().
    private static class myLocationListener implements LocationListener
    {
        public void locationUpdated(LocationProvider provider, Location location)
        {
        }
        public void providerStateChanged(LocationProvider provider, int newState)
        {
        }
    }
  6. In locationUpdated(), verificare se il parametro location è un'istanza di BlackBerryLocation. In tal caso, creare un oggetto BlackBerryLocation locale passando il parametro location. Richiamare getStatus() per recuperare lo stato della richiesta di posizione GPS ed elaborare lo stato restituito.
    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;
        }
    }

Esempio di codice: gestione degli errori (estensioni di BlackBerry che includono 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)
        {
        }
    }
}
Argomento precedente: Gestione degli errori (JSR 179)

Le informazioni sono state utili? Inviateci i vostri commenti.