Guide de développement

Local Navigation

Traiter les erreurs (extensions BlackBerry JSR 179)

Vous pouvez vérifier le statut d'une demande d'obtention de la position GPS actuelle en appelant la méthode getStatus() fournie dans les extensions BlackBerry JSR 179. Si le résultat est BlackBerryLocation.GPS_ERROR, vous pouvez récupérer la valeur d'erreur en appelant BlackBerryLocation.getError().
  1. Importez les classes et les interfaces requises.
    import net.rim.device.api.gps.*;
    import javax.microedition.location.*;
  2. Créez une classe et un constructeur.
    public class handleGPS
    {
        public handleGPS()
        {
        }
    }
  3. Dans le constructeur, créez un bloc try/catch. Dans ce bloc, créez une instance de la classe BlackBerryCriteria en transmettant le mode GPS au constructeur.
    try
    {
        BlackBerryCriteria myCriteria =
          new BlackBerryCriteria(GPSInfo.GPS_MODE_ASSIST);
    }
    catch ( UnsupportedOperationException ex )
    {
        return;
    }
  4. Dans le bloc try/catch, créez un autre bloc try/catch. Dans ce bloc, créez une instance de la classe BlackBerryLocationProvider en récupérant l'objet BlackBerryCriteria. Appelez setLocationListener() pour indiquer l'écouteur de positionnement.
    try
    {
        BlackBerryLocationProvider myProvider =
            (BlackBerryLocationProvider)LocationProvider.getInstance(myCriteria);
        myProvider.setLocationListener(new myLocationListener(), -1, -1, -1);
    }
    catch ( LocationException lex )
    {
        return;
    }
  5. Dans la classe, créez une classe statique déployant LocationListener. Déployez locationUpdated() et providerStateChanged().
    private static class myLocationListener implements LocationListener
    {
        public void locationUpdated(LocationProvider provider, Location location)
        {
        }
        public void providerStateChanged(LocationProvider provider, int newState)
        {
        }
    }
  6. Dans locationUpdated(), vérifiez si le paramètre location est une instance de BlackBerryLocation. Si oui, créez alors un objet local BlackBerryLocation en transmettant le paramètre location. Appelez getStatus() pour récupérer l'état de la demande de position GPS, puis traitez l'état renvoyé.
    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;
        }
    }

Échantillon de code : traitement des erreurs (extensions BlackBerry 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)
        {
        }
    }
}
Sujet précédent: Traiter les erreurs (JSR 179)

Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.