Android 5.0中的融合位置提供程序行为
我正试图利用安卓融合定位提供商,使用高精度优先级,每30分钟获取一次设备位置。令我惊讶的是,当GPS被禁用时,我希望API能利用网络提供商和传感器来给我定位,但精度很低。但是,对于Android 5.0,API在本例中返回的位置为空 这种行为在安卓4.0中是不同的,它给了我一个位置,但正如预期的那样,它的准确性很差。我找不到关于这个的任何文档!有什么想法吗??Android 5.0中的融合位置提供程序行为,android,location,fusedlocationproviderapi,android-fusedlocation,Android,Location,Fusedlocationproviderapi,Android Fusedlocation,我正试图利用安卓融合定位提供商,使用高精度优先级,每30分钟获取一次设备位置。令我惊讶的是,当GPS被禁用时,我希望API能利用网络提供商和传感器来给我定位,但精度很低。但是,对于Android 5.0,API在本例中返回的位置为空 这种行为在安卓4.0中是不同的,它给了我一个位置,但正如预期的那样,它的准确性很差。我找不到关于这个的任何文档!有什么想法吗?? 编辑:刚刚意识到,Android 5的设备没有SIM,这意味着如果没有SIM,融合的位置提供商不会考虑WiFi来找到最佳的位置吗? <
编辑:刚刚意识到,Android 5的设备没有SIM,这意味着如果没有SIM,融合的位置提供商不会考虑WiFi来找到最佳的位置吗?
< P>缓存将在设备关闭后被清除,所以你应该使用PrimeRealHyg精度的LooCuffor请求。您可以使用LocationCallBack作为弱引用,这样就可以避免内存泄漏。必须删除onStop()中的位置更新。代码是这样的 LocationRequest locationRequest = LocationRequest.create();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(2000);
LocationCallback locationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
super.onLocationResult(locationResult);
if (locationResult == null || locationResult.getLastLocation() == null)
return;
updateLocation(locationResult.getLastLocation());
}
};
fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, null);
这可能对你有价值:请分享你的发现