gpt4 book ai didi

java - getLastKnownLocation 的替代方案

转载 作者:行者123 更新时间:2023-12-01 09:31:04 26 4
gpt4 key购买 nike

我正在使用 Google map v2,有时 getLastKnownLocation() 返回 NULL。有没有其他方法可以达到相同的效果但稳定性更高?感谢您的帮助

最佳答案

首先,如果用户关闭了您的应用程序 (Marshmallow) 的位置或关闭了所有应用程序(Lollipop 及以下)的位置,则 getLastKnownLocation() 只应返回 null。另外,请务必在调用 getLastKnownLocation 之前调用 locationManager.requestSingleUpdate()。

这是一些非常可靠的代码,(如果我在 5 次尝试内没有获得位置,我认为我们无法获得该位置):

if (ContextCompat.checkSelfPermission(context,
Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED
&& locMan != null) {

String provider;

provider = locMan.getProvider(LocationManager.NETWORK_PROVIDER).getName();

if (Looper.myLooper() == null) {
Looper.prepare();
}

int count = 5;
for (int i = 0; i < count; i++) {

locMan.requestSingleUpdate(provider, null, Looper.myLooper());
location = locMan.getLastKnownLocation(provider);

if (location != null) {
break;
} else {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

另一种方法是,您可以使用 locationManager.requestLocationUpdates() 申请位置更新并为其提供一个 LocationListener。当操作系统获取位置更新时,监听器将触发。

关于java - getLastKnownLocation 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39392201/

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