我在使用位置监听器和位置管理器时遇到问题。
我正在使用我在互联网上找到的课程
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);
请帮帮我......
答案 0 :(得分:1)
LocationManager.NETWORK_PROVIDER尝试使用蜂窝网络塔和Wifi网络来定位设备。如果它们都没有改变,那么您将不会收到任何更新。
您是否要求更新并漫游(您可能需要在您的地方散步)?
使用GPS,随着信号增强并变得越来越准确,即使您不移动,您也会收到更新。