FusedLocationProvider - 如果位置模式为“仅设备”,任何获取位置的方法?
Posted
技术标签:
【中文标题】FusedLocationProvider - 如果位置模式为“仅设备”,任何获取位置的方法?【英文标题】:FusedLocationProvider - any way to get a location if location mode is "Device Only"? 【发布时间】:2018-08-02 10:51:47 【问题描述】:我一直在玩 FusedLocationProvider,我发现如果您的手机的位置模式设置为“仅限设备”(在设置中更改 - 这意味着仅启用 GPS 进行定位。不使用 Wifi 网络和手机信号塔以提高准确性),那么我无法找到一种方法让 FusedLocationProvider 在不要求用户将其更改为高精度(始终调用 onResolutionRequired)的情况下为您获取位置。
所有四个 LocationRequest 优先级都不起作用:
-
PRIORITY_HIGH_ACCURACY - 要求切换到位置模式“高
准确性”
PRIORITY_BALANCED_POWER_ACCURACY - 同上
PRIORITY_LOW_POWER - 同上
PRIORITY_NO_POWER - 只是没用
如果设备处于此模式,是否无法通过 FusedLocationProvider 获取位置?我很确定您可以通过 android.location.LocationManager 获得它。如果这是为了更好地抽象,这似乎是一个巨大的设计缺陷..
【问题讨论】:
您找到解决方案了吗?你能给我解释一下吗? 【参考方案1】:您确实需要使用 LocationManager 来检测这一点,我同意它真的很愚蠢。使用以下代码:
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (locationManager != null && locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER))
requestLocationUpdates();
else
//Location request code
这是我制作的一个包含这种技术的示例项目:
https://github.com/gavingt/basic_location_improved
【讨论】:
有效吗?你能解释一下我如何只为设备编写代码吗? 我花了整个下午,但是你去:github.com/gavingt/basic_location_improved 感谢您的努力,但当我将其设置为仅设备(仅 GPS)模式时仍然无法正常工作。 你的意思是它不工作?发生什么了?它在我的设备和模拟器上也能正常工作。 不,在 moto e power android os 6.0 版中不工作以上是关于FusedLocationProvider - 如果位置模式为“仅设备”,任何获取位置的方法?的主要内容,如果未能解决你的问题,请参考以下文章
FusedLocationProvider 有时会给出错误的位置
FusedLocationProvider 位置更新的单独类或服务?
无法使用 FusedLocationProvider 将 Gps 设置升级到高精度在某些设备中
Android:FusedLocationProvider,每隔几秒获取一次位置
使用 fusedLocationProvider.removeLocationUpdates (locationCallback) Android Studio 时出错