получение местоположения GPS в BlackBerry - PullRequest
1 голос
/ 12 мая 2010

в моем приложении я пытаюсь получить местоположение пользователя, но оно всегда 0.0 для широты и долготы. Я видел форум Blackberry, но не смог найти, что я делаю неправильно ???

код:

  package com.MyChamberApp;

    import javax.microedition.location.Criteria;
    import javax.microedition.location.Location;
    import javax.microedition.location.LocationListener;
    import javax.microedition.location.LocationProvider;

    public class GPS_Location {
     static double longi;
     static double lati;

     public GPS_Location() {

     }

     public void location()
     {
      new LocationTracker();
     }

     class LocationTracker 
     {
      private LocationProvider provider;
      Criteria cr;

      public LocationTracker() 
      {
       resetGPS();
      }

      public void resetGPS() {

      try {
      cr = new Criteria();
      cr.setPreferredPowerConsumption(Criteria.POWER_USAGE_HIGH);
      cr.setPreferredResponseTime(120000);
                cr.setCostAllowed(true);
      provider = LocationProvider.getInstance(cr);
      provider.getLocation(120);
      if (provider != null) 
       {
        provider.setLocationListener(new MyLocationListener(), 1,1,1);
       }
      } catch (Exception e) {}

      }

      public void run(){}

     private class MyLocationListener implements LocationListener 
         {
       public void providerStateChanged(LocationProvider provider,int newState)
       {
        if (newState == LocationProvider.TEMPORARILY_UNAVAILABLE)
        {
          provider.reset();
          resetGPS();
        }
       if (newState == LocationProvider.OUT_OF_SERVICE)
       {
        provider.reset();
        resetGPS();
       }
     }

     public void locationUpdated(LocationProvider provider,Location location) 
      {
       if (location != null && location.isValid()) {
        try {
      lati = location.getQualifiedCoordinates().getLatitude();
      longi = location.getQualifiedCoordinates().getLongitude();
         } catch (Exception e) {}
     }
      }
    }
   }
 }

я пробовал этот код на кривой8300, жирный 9000 Он хорошо работает на симуляторе, но не получает значения на устройстве, даже если я вручную обновляю свой gps из опций -> дополнительные параметры -> gps. заранее спасибо !!!!!!!!!!!!!!!!

Ответы [ 2 ]

1 голос
/ 21 мая 2010
criteria.setHorizontalAccuracy(500);
criteria.setVerticalAccuracy(500);

установить горизонтальную и вертикальную точность на низкие значения. Это в некоторой степени поможет с точки зрения точности

1 голос
/ 17 мая 2010
Criteria criteria = new Criteria();

criteria.setHorizontalAccuracy(5000);
            criteria.setVerticalAccuracy(5000);
            criteria.setCostAllowed(true);
            criteria.setPreferredPowerConsumption(Criteria.POWER_USAGE_HIGH);
            _locationProvider = LocationProvider.getInstance(criteria);
              Location location =_locationProvider.getLocation(-1);
            _longitude = location.getQualifiedCoordinates().getLongitude();
            _latitude = location.getQualifiedCoordinates().getLatitude();
             _altitude = location.getQualifiedCoordinates().getAltitude();
             _speed = location.getSpeed();
            if(_locationProvider!=null)
             {                
              _locationProvider.setLocationListener(new LocationListenerImpl(), _interval, 1, 1);

            }

у меня этот код работал !!!!!!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...