2011-06-14 52 views
0

当设备通过网络提供商获取位置信息时,我可以获取经度和纬度并将它们转换为地址,但当我使用gps时会失败。我能做些什么来解决这个问题?未能通过GPS获取经度和纬度,但通过Android中的网络提供商获取?

public void onCreate(Bundle savedInstanceState) { 
... 

mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
mLocation = mLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
if (mLocation != null) { 

      gp1 = getGeoByLocation(mLocation); 
      gp2 = gp1; 

      refreshMapView(); 

      if(!mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){ 
       mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 2000, 
         10, mLocationListener); 
      }else{ 
       mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 
           10, mLocationListener); 
      } 

    private GeoPoint getGeoByLocation(Location location) { 
     GeoPoint gp = null; 
     try { 
      if (location != null) { 
       double geoLatitude = location.getLatitude() * 1E6; 
       double geoLongitude = location.getLongitude() * 1E6; 
       gp = new GeoPoint((int) geoLatitude, (int) geoLongitude); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return gp; 
    } 
+0

有什么问题?你在日志中看到什么? – 2011-06-14 15:06:42

+0

无法显示有关经度和纬度的字符串,也是当我使用GPS时指出我的位置的图像;( – 2011-06-14 15:15:03

回答

1

isProviderEnabled如果在“设置”菜单中禁用它,它将为false。如果启用GPS,您应该在通知/状态栏上看到一个图标。

+0

是的,我可以在通知/状态栏上看到GPS图标,但无法看到关于经度和纬度的字符串当您使用网络提供商获取位置时,它会成功,但在使用GPS时失败 – 2011-06-14 15:03:34

+0

您等待了多长时间?,您是否在空旷地方?(应该在10-15分钟内获得修复,并且您 – Reno 2011-06-14 15:06:35

+0

大约几分钟,地图可以放大到我住的区域,但是不能显示经度和纬度,我现在呆在房间里 – 2011-06-14 15:09:22

1

GPS慢得多,而且经常不可用。如果有人在建筑物内,例如开发软件的办公室,或者甚至是软件开发商的房屋/公寓,那么很有可能你不会得到GPS定位。我们的应用很大程度上依赖于位置,我们获得的大部分位置坐标均来自蜂窝塔或无线三角测量,两者都显示为NETWORK_PROVIDER。

相关问题