gpt4 book ai didi

android - 即使启用了所有位置服务,Google 位置服务 getBestProvider 也会返回 null

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:08 24 4
gpt4 key购买 nike

即使 map 应用程序显示正确的位置,定位服务 getBestProvider 调用也返回 null。 FINE_LOCATION 和 COARSE_LOCATION 的权限在 list 中。

public static Location getLocation(Context context) {
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
Location myLocation = locationManager.getLastKnownLocation(locationManager.getBestProvider(criteria, false));
return myLocation;
}

任何帮助将不胜感激,因为这是我第一次使用定位服务。提前谢谢你。

最佳答案

无论您使用哪个提供商的 GPS、NETWORK 或最好的提供商,它们的工作原理都是相同的,即从本地(在设备上)缓存中获取位置。

试试这个实验。更改您的 physical 位置(四处移动,距离您现在的位置约 200 米)并加载谷歌地图,突然间您的应用程序也会返回正确的坐标。那是因为谷歌地图知道如何触发本地缓存更新。我(幸运的是)找到了触发缓存更新的方法。

只需在您的 getLastKnownLocation 之前调用它,魔法就会发生。

HomeScreen.getLocationManager().requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, 0, 0, new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onLocationChanged(final Location location) {
}
});

或使用 LocationClient。用于位置更新的新 API。

关于android - 即使启用了所有位置服务,Google 位置服务 getBestProvider 也会返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17277565/

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