【发布时间】:2019-07-08 17:38:30
【问题描述】:
我目前正在开发一个要求用户在其设备上启用高精度的应用程序。我已将应用程序编程为使用 Android 弹出窗口和设置 API 来询问和解决此问题。
首先检查用户的位置模式是否正确,我使用:
retVal = Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE) == Settings.Secure.LOCATION_MODE_HIGH_ACCURACY;
此检查似乎适用于 API 级别 27 及以下。
但是,使用 API 28 中引入的新二进制 Google 精度设置,我遇到了问题。如果我关闭了准确性并使用应用程序中的弹出窗口打开准确性设置。即使现在启用了高精度,Settings.Secure.LOCATION_MODE 也会返回错误的值。仅当用户从 Android 中的“设置”应用手动更改此设置时,LOCATION_MODE 才会返回正确的值。
我想知道是否有新的 API 可以在 API 28 中准确返回 LOCATION_MODE?
【问题讨论】: