LocationManager.NETWORK_PROVIDER未触发onLocationChanged

时间:2014-03-23 10:56:06

标签: android geolocation location

我正在尝试在不使用GPS的情况下创建位置检测器。但是LocationManager.NETWORK_PROVIDER没有触发onLocationChanged。可以建议吗?

        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0, 0, this);

@Override
public void onLocationChanged(Location location) {
    // TODO Auto-generated method stub
    getlocation= may();
    longitude =getlocation.getLongitude(); //location.getLongitude();
    latitude = getlocation.getLatitude();//location.getLatitude();
    String str = "Latitude: " + latitude + "Longitude: " + longitude;

    Toast.makeText(getBaseContext(), str, Toast.LENGTH_LONG).show();
}

@Override
public void onProviderDisabled(String arg0) {
    // TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String arg0) {
    // TODO Auto-generated method stub

}

@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
    // TODO Auto-generated method stub

}

1 个答案:

答案 0 :(得分:0)

对于一个你似乎没有对OnLocationChanged方法中的实际位置对象的引用。此外,由于NETWORK_PROVIDER如此不准确,您将不得不长途跋涉注册任何位置变化,而某些广播塔根本不提供位置服务。

我的建议是使用LocationManager.getLastKnownLocation来提供初始修复。但是,您需要等待很长时间才能找到没有gps的新位置

LocationManager文档:http://developer.android.com/reference/android/location/LocationManager.html#getLastKnownLocation(java.lang.String)