Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我应该为GPS和网络提供商使用单独的locationManager吗?_Android_Networking_Gps_Locationmanager - Fatal编程技术网

Android 我应该为GPS和网络提供商使用单独的locationManager吗?

Android 我应该为GPS和网络提供商使用单独的locationManager吗?,android,networking,gps,locationmanager,Android,Networking,Gps,Locationmanager,我是否可以使用相同的locationManager来请求gps和网络提供商的更新,或者我是否应该创建两个locationManager和单独的onLocation changed功能等。我对此感到非常困惑。您需要检查并查看哪一个可用,然后使用相应的一个: if(mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){ mLocationManager.requestLocationUpdates(Location

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

您需要检查并查看哪一个可用,然后使用相应的一个:

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);
}
您可以使用同一个侦听器,因为所有侦听器的方法都将源不可知的
位置
对象作为参数:

@Override
public void onLocationChanged(Location location) {
    // updateLocation();
}

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

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);
}
您可以使用同一个侦听器,因为所有侦听器的方法都将源不可知的
位置
对象作为参数:

@Override
public void onLocationChanged(Location location) {
    // updateLocation();
}

谢谢你,因为我想使用这个模型来获得最佳性能(),从而从多个网络和gps位置中确定最佳位置。你知道我应该如何实现这篇文章中提到的时间窗口吗?例如,如何监听2分钟的更新,然后做某事……当您调用requestLocationUpdates()时,第二个参数是LOCATION_UPDATE_min_TIME,您可以将其设置为120000(两分钟)是的,但想法是将UPDATE min TIME设置为大约15秒,例如,在2分钟的时间内,我将有大约4个位置(如果一切都按时间进行),从这篇文章中提供的功能的4个位置(我想是isBetterLocation)我会选择最准确的一个..但我想我可能还有一些其他想法,谢谢你的回复。谢谢你,因为我想用这个模型获得最好的性能()因此,从几个网络和gps位置来决定什么是最佳位置。你知道我应该如何实现本文中提到的时间窗口吗?例如,如何监听2分钟的更新,然后在调用requestLocationUpdates()时执行某项操作第二个参数是LOCATION_UPDATE_MIN_TIME,您可以将其设置为120000(两分钟)是的,但是我们的想法是将UPDATE MIN TIME设置为15秒,例如,在2分钟的时间内,我将有大约4个位置(如果一切都按时钟进行),并使用本文提供的功能从这4个位置开始(我想我会选择最准确的一个。)但我想我可能还有其他想法,谢谢你的回复。