我有时没有从NETWORK_PROVIDER获得gps坐标

时间:2011-07-04 10:00:40

标签: android gps

LocationManager mlocManager =(LocationManager)getSystemService(Context.LOCATION_SERVICE);

    LocationListener mlocListener = new MyLocationListener();

    mlocManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, 0, 0, mlocListener);

    //init();

}

/* Class My Location Listener */

public class MyLocationListener implements LocationListener

{

@Override

public void onLocationChanged(Location loc)

{

    //_pd.dismiss();

loc.getLatitude();

loc.getLongitude();

String Text = "My current location is: " +"Latitud = " + loc.getLatitude() +"Longitud ="  + loc.getLongitude();
txtInfo.setText(Text);

Toast.makeText( getApplicationContext(),Text,Toast.LENGTH_SHORT).show();

}

@Override

public void onProviderDisabled(String provider)

{

Toast.makeText( getApplicationContext(),"Gps Disabled",Toast.LENGTH_SHORT ).show();

}

@Override

public void onProviderEnabled(String provider)

{

Toast.makeText( getApplicationContext(),"Gps Enabled",Toast.LENGTH_SHORT).show();

}

@Override

public void onStatusChanged(String provider, int status, Bundle extras)

{

}
}

这是我的代码....很久我得到了gps坐标,有时我不知道为什么会这样?

2 个答案:

答案 0 :(得分:0)

使用GPS获取地理位置修复需要很长时间,因此您需要在Wirless网络提供商和GPS之间切换以可靠地获取地理坐标。首先轮询无线网络是好主意,如果没有启用/可用,则回退到GPS提供商。

好参考:Android-location-providers-gps-network-passive

答案 1 :(得分:0)

这是因为某些位置在android中没有显示纬度和经度。这不是一个大问题,你只需检查你的lat和lng返回null或不。如果它返回null,则只显示一条简单的消息,此位置没有lat和lng。