Guide de développement

Local Navigation

Modifier les critères pour recevoir des informations de positionnement

Vous pouvez utiliser une instance de la classe LocationProvider pour modifier automatiquement les critères utilisés pour repérer la position d'un terminal BlackBerry.

  1. Importez les classes et l'interface requises.
    import net.rim.device.api.gps.GPSInfo;
    import javax.microedition.location.*;
  2. Créez une classe et un constructeur.
    public class handleGPS
    {
       public handleGPS(int gpsMode)
       {
       }
    }
  3. Dans la classe, définissez des champs statiques pour le fournisseur de positionnement, la latitude, la longitude, l'altitude, la vitesse et le cap.
    static LocationProvider locationProvider;
    static double lat, lon;
    static float  alt, spd, crs;
  4. Dans le constructeur, ajoutez un bloc de code pour configurer une instance de LocationProvider pour passer à une autre méthode de localisation. Appelez reset() sur l'objet LocationProvider, puis définissez l'écouteur de positionnement sur null pour désactiver l'écouteur.
    if (locationProvider != null)
    {
        locationProvider.reset();
        locationProvider.setLocationListener(null, -1, -1, -1);
    }
  5. Dans le constructeur, créez et configurez un objet Criteria selon le mode GPS transmis en tant que paramètre au constructeur.
    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. Dans le constructeur, créez un bloc try/catch. Dans ce bloc, créez une instance de la classe LocationListener en appelant getInstance() et en transmettant l'objet Criteria en tant que paramètre. Indiquez un écouteur de positionnement pour gérer les mises à jour de position GPS.
    try
    {
       locationProvider = LocationProvider.getInstance(myCriteria);
       if (locationProvider != null)
       {
          locationProvider.setLocationListener
            (new myLocationListener(), -1, -1, -1);
       }
    }
    catch (Exception err)
    {}
  7. Dans la classe, créez une classe statique privée déployant l'interface LocationListener. Récupérez les informations d'emplacement actuelles dans la méthode locationUpdated(). Créez une implémentation de base de la méthode providerStateChanged() pour contrôler l'état 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)
       {}
    }

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