android - 来自 Google Play 的位置服务在模式 "Device Only"下不起作用

标签 android google-location-services

我有一个应用程序可以跟踪设备的位置。过去我使用 Android 框架位置 API。按预期工作 - 所以没有真正需要改变它。 但现在我想评估 Google 推荐使用的 Google Play 服务中的位置服务,因此我相应地更改了我的应用程序。有一些选项将来可能会派上用场。

为此,我正在关注 https://developer.android.com/training/location/change-location-settings.html 在解决了相当复杂的依赖关系和要求之后,我现在有了一个工作配置。但也有问题:

第 1 部分

似乎没有使用“仅设备”模式的选项(意味着只有 GPS 将用于定位服务,而不是 WiFi 等……

如果我使用 PRIORITY_HIGH_ACCURACY、间隔 10000 和最小位移 20 请求位置更新,如果设备设置为定位模式“仅设备”,则待定 LocationSettingsResult 始终返回状态 RESOLUTION_REQUIRED。 解决方案是激活“高精度”模式,该模式还可以启用 WiFi 等。 但在这种模式下,位置数据会发送到 Google,这对我的一些用户来说可能是一个隐私问题。

我认为这是一个错误,因为“仅设备”模式应该足以满足请求。 在哪里提交 Google Play 服务的错​​误?不幸的是,这些问题超出了 AOSP Bug Tracker 的范围,我不知道有任何官方地方可以提交此类错误。

另一个问题是从服务启动定位请求。如果现在状态是 RESOLUTION_REQUIRED 如何解决? Google 提供的解决方案需要解决方案的 Activity 。但是在服务中没有可用于此的 Activity 。 LocationSettingsResult 的状态对象提供了对 LocationSettingsStates 对象的访问权限——但如何提取问题的原因和可能的解决方案?

最佳答案

我遇到了完全相同的问题 - 当手机 (Moto G4) 设置为“仅设备”模式时,FusedLocationProvider 没有响应位置数据。试了一下,原来是手机壳挡住了GPS信号!使用类似 GPS Status and Toolbox 的应用程序确实有助于找出卫星的信号强度,是否收到定位等,

关于android - 来自 Google Play 的位置服务在模式 "Device Only"下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41175988/

相关文章:

android - 无法解析 AutocompleteFilter.create

android - FusedLocationProviderClient 和 FusedLocationProvider API 之间的区别

android - 安装 Google Play 服务

java - 日期时区在查找位置 "America/Punta_Arenas"的 ID 时遇到问题

android - 难以理解 layout_alignWithParentIfMissing

android - 如何解决 Android Studio 中 Configuration with name 'default' not found 错误 - andraskindler quickscroll

java - java.lang.RuntimeException:无法启动 Activity ComponentInfo:java.lang.ClassCastException:无法转换为android.widget.Button

android - Dagger 2 - 模块为单例提供

Android AlarmManager setExact() 不准确

java - 客户端必须具有 ACCESS_FINE_LOCATION 权限才能请求 PRIORITY_HIGH_ACCURACY 位置运行时错误