gpt4 book ai didi

android - Android 5.0 中的融合位置提供程序行为出乎意料

转载 作者:行者123 更新时间:2023-12-01 06:22:37 25 4
gpt4 key购买 nike

我正在尝试使用 android 融合位置提供程序使用 PRIORITY_HIGH_ACCURACY 每 30 分钟获取一次设备位置。令我惊讶的是,当 GPS 被禁用时,我希望 API 能够利用网络提供商和传感器为我提供准确度极低的位置。但是,在这种情况下,API 返回的位置对于 Android 5.0 为空。这种行为在 Android 4.0 中有所不同,它为我提供了准确度不高的位置,正如预期的那样。我找不到任何关于此的文档!有什么想法吗??
编辑:刚刚意识到,具有 Android 5.0 的设备没有 SIM 卡,这是否意味着如果没有 SIM 卡,融合位置提供商也不会考虑使用 WiFi 来寻找最佳位置?

最佳答案

设备位置关闭后缓存将被清除,因此您应该使用带 PRIORITY_HIGH_ACCURACY 的 LocationRequest。您可以使用 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);

关于android - Android 5.0 中的融合位置提供程序行为出乎意料,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31906011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com