我一直在玩FusedLocationProvider,我发现如果你的手机的定位模式被设置为“设备仅限”(在设置中更改-这意味着只有GPS才能定位。)Wifi网络和蜂窝塔不是用来提高精度的),然后我就找不到一种方法让FusedLocationProvider给你一个位置,而不要求用户将其更改为高精度(onResolutionRequired总是被称为)。
所有四个LocationRequest优先级都不起作用:
如果设备处于此模式,是否无法通过FusedLocationProvider获取位置?我很肯定你能通过android.location.LocationManager。这似乎是一个巨大的设计缺陷,如果这是为了更好的抽象之上。
发布于 2018-02-26 16:54:18
您确实需要使用LocationManager来检测这一点,我同意这是非常愚蠢的。使用以下代码:
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (locationManager != null && locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
requestLocationUpdates();
} else {
//Location request code
}下面是我所做的一个结合了这项技术的示例项目:
https://stackoverflow.com/questions/48929941
复制相似问题