我要從 NETWORK_PROVIDER中獲得gps坐標,用的以下的代碼實現這個功能。
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坐標,有時候又獲取不了,為什麼呢?
使用GPS獲取 Geo Fix 需要很長的時間,因此你需要在無線網絡和GPS之間切換來獲得可靠的Geo坐標。要首先檢查無線網絡看是否啟用,然後返回給GPS provider。
相關資料:Android-location-providers-gps-network-passive