1

我可以使用相同的 locationManager 来请求 gps 和网络提供商的更新,还是应该创建两个 locationManager 并单独的 onLocation 更改功能等。我对此感到非常困惑

4

1 回答 1

1

您将需要按照您想要使用它们的顺序检查并查看哪一个可用,然后使用相应的一个:

if(mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
    mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, LOCATION_UPDATE_MIN_TIME, LOCATION_UPDATE_MIN_DISTANCE, locationListener);
}
else if(mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){
    mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, LOCATION_UPDATE_MIN_TIME, LOCATION_UPDATE_MIN_DISTANCE, locationListener);
}

您可以使用相同的侦听器,因为所有侦听器的方法都将与Location源无关的对象作为参数:

@Override
public void onLocationChanged(Location location) {
    // updateLocation();
}
于 2011-08-03T00:58:11.367 回答