【问题标题】:FusedLocationProvider - any way to get a location if location mode is "Device Only"?FusedLocationProvider - 如果位置模式为“仅设备”,任何获取位置的方法?
【发布时间】:2018-08-02 10:51:47
【问题描述】:

我一直在玩 FusedLocationProvider,我发现如果您的手机的位置模式设置为“仅限设备”(在设置中更改 - 这意味着仅启用 GPS 进行定位。不使用 Wifi 网络和手机信号塔以提高准确性),那么我无法找到一种方法让 FusedLocationProvider 在不要求用户将其更改为高精度(始终调用 onResolutionRequired)的情况下为您获取位置。

所有四个 LocationRequest 优先级都不起作用:

  1. PRIORITY_HIGH_ACCURACY - 要求切换到位置模式“高 准确性”
  2. PRIORITY_BALANCED_POWER_ACCURACY - 同上
  3. PRIORITY_LOW_POWER - 同上
  4. PRIORITY_NO_POWER - 只是没用

如果设备处于此模式,是否无法通过 FusedLocationProvider 获取位置?我很确定您可以通过 android.location.LocationManager 获得它。如果这是为了更好地抽象,这似乎是一个巨大的设计缺陷..

【问题讨论】:

  • 您找到解决方案了吗?你能给我解释一下吗?

标签: android google-play-services android-location


【解决方案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 版中不工作
猜你喜欢
  • 2015-11-02
  • 1970-01-01
  • 1970-01-01
  • 2013-12-02
  • 2022-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多