2010-05-12 141 views
1

在我的应用程序中,我尝试获取用户位置,但经纬度都是0.0。我已经看到黑莓论坛,但无法找到我做错了什么?获取gps在黑莓的位置

代码:

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) {} 
    } 
     } 
    } 
    } 
} 

我已经尝试了curve8300这个代码,bold9000 它运作良好,在模拟器,但是,设备不取值,即使我手动刷新我的GPS,从选项 - >高级选项 - - > GPS。 在此先感谢!!!!!!!!!!!!!!!!

回答

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

设置水平和垂直精度低values.this将有助于在一定程度上在准确性方面

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

      } 

此代码为我工作!!!!!!!

+0

嘿,我认识一样东西它不是给我的位置,完美的精度 做什么 – Swati 2010-05-19 06:03:48

+0

验证码需要很长时间才能获取gps位置 – Swati 2010-05-19 07:52:51