Guide de développement

Local Navigation

Récupérer des informations de satellite à l'aide de la classe BlackBerryLocation

Vous pouvez demander l'obtention d'une position GPS puis récupérer le nombre actuel de satellites en vue, de satellites suivis, la qualité moyenne du signal des satellites, la source de données GPS (GPS interne ou externe) et le mode GPS.

  1. Importez les classes requises.
    import java.util.*;
    import java.lang.*;
    import net.rim.device.api.gps.*;
  2. Créez une classe et un constructeur.
    public class handleGPS
    {
       public handleGPS()
       {
       }
    }
  3. Dans la classe, indiquez des champs statiques pour un thread et pour chaque élément d'informations de positionnement que vous récupérez.
    static GPSThread gpsThread;
    static int satCount;
    static int signalQuality;
    static int dataSource;
    static int gpsMode;
  4. Dans le constructeur, créez et démarrez un thread.
    gpsThread = new GPSThread();
    gpsThread.start();
  5. Dans la classe, créez une classe statique privée développant Thread et une méthode run().
    private static class GPSThread extends Thread
    {
        public void run()
        {
        }
    }
  6. Dans run(), créez un bloc try/catch. Dans ce bloc, créez une instance de la classe BlackBerryCriteria indiquant le mode GPS. Créez un second bloc try/catch. Dans ce bloc, créez une instance de la classe BlackBerryLocationProvider en obtenant une instance de l'objet BlackBerryCriteria.
    try
    {
        BlackBerryCriteria myCriteria = new BlackBerryCriteria(GPSInfo.GPS_MODE_AUTONOMOUS);
        try
        {
            BlackBerryLocationProvider myProvider =
                (BlackBerryLocationProvider)LocationProvider.getInstance(myCriteria);
    
  7. Créez un troisième bloc try/catch dans le premier bloc try/catch. Créez un objet BlackBerryLocation pour récupérer la position GPS actuelle, avec un délai d'expiration de 300 secondes. Remplissez les champs et extrayez les informations satellite dans un objet StringBuffer.
    try
    {
        BlackBerryLocation myLocation =
            (BlackBerryLocation)myProvider.getLocation(300);
        satCount= myLocation.getSatelliteCount();
        signalQuality = myLocation.getAverageSatelliteSignalQuality();
        dataSource = myLocation.getDataSource();
        gpsMode = myLocation.getGPSMode();
        SatelliteInfo si;
        StringBuffer sb = new StringBuffer("[Id:SQ:E:A]\n");
        String separator = ":";
        for (Enumeration e = myLocation.getSatelliteInfo();
            e!=null && e.hasMoreElements(); )
        {
            si = (SatelliteInfo)e.nextElement();
            sb.append(si.getId() + separator);
            sb.append(si.getSignalQuality() + separator);
            sb.append(si.getElevation() + separator);
            sb.append(si.getAzimuth());
            sb.append('\n');
        }
    }
    catch ( InterruptedException iex )
    {}
    catch ( LocationException lex )
    {}

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