onLocationChanged只使用网络提供程序调用一次

时间:2014-04-21 03:51:07

标签: android eclipse google-maps-api-2 locationlistener

我在使用位置监听器和位置管理器时遇到问题。

我正在使用我在互联网上找到的课程

public class MyLocationListener implements LocationListener
{
    public void onLocationChanged(Location location) {
        home_text.setText("Location Change");
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

    }

    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub

    }

    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub

    }
}

当我使用gps提供程序时,它可以正常工作

locationListener = new MyLocationListener();
locationManager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,1, locationListener);

当我使用网络提供者时,onLocationChanged在开始时只调用一次而从未再次调用。

locationListener = new MyLocationListener();
locationManager =    (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000,1, locationListener);

但是,当我使用这两种方法打开地图时,它仍然可以找到我当前的位置并更新地图。

googleMap.setMyLocationEnabled(true);

请帮帮我......

1 个答案:

答案 0 :(得分:1)

LocationManager.NETWORK_PROVIDER尝试使用蜂窝网络塔和Wifi网络来定位设备。如果它们都没有改变,那么您将不会收到任何更新。

您是否要求更新并漫游(您可能需要在您的地方散步)?

使用GPS,随着信号增强并变得越来越准确,即使您不移动,您也会收到更新。