开发者

fetching gps location in blackberry

in my application i try to fetch users location but it always 0.0 for both latitude and longitude.I have seen blackberry forum but couldn't find what am i doing wrong???

code :

  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.setPreferre开发者_高级运维dPowerConsumption(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) {}
     }
      }
    }
   }
 }

i have tried this code on curve8300,bold9000 It works well on simulator but does not fetches value on device even if i manually refresh my gps from options-->advanced options-->gps. thanks in advance!!!!!!!!!!!!!!!!


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);

            }

this code worked for me!!!!!!!


criteria.setHorizontalAccuracy(500);
criteria.setVerticalAccuracy(500);

set horizontal and vertical accuracy to low values.this will help to some extent in terms of accuracy

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜