【问题标题】:Is there a new way to detect Android location settings in the GooglePlayServices API?是否有一种新方法可以在 GooglePlayServices API 中检测 Android 位置设置?
【发布时间】:2015-05-12 20:55:55
【问题描述】:

使用旧的 Android 位置管理器,您可以使用以下方法检测是否为 GPS 启用了位置(以及类似的网络位置):

LocationManager x = (LocationManager) getSystemService(Activity.LOCATION_SERVICE);
boolean isGPSEnabled = x.isProviderEnabled(LocationManager.GPS_PROVIDER);

是否有使用 Google Play 服务位置 API 执行此操作的新方法?文档建议

如果您目前正在使用 Android 框架位置 API,强烈建议您尽快切换到 Google Play 服务位置 API。

https://developer.android.com/training/location/index.html https://developer.android.com/reference/com/google/android/gms/location/package-summary.html

【问题讨论】:

  • 用一大撮盐来鼓励。有很多应用程序没有从新的 API 中受益,而旧的应用程序也不会消失(新的应用程序是在它们之上构建的)。除非所有者盗版了 Google Play 服务,否则新的也无法在自定义 ROM 或任何未向谷歌支付使用权的手机上运行。

标签: android geolocation location google-play-services


【解决方案1】:

正如 Gabe 所说,如果您的用例对 LocationManager 感到满意,我认为您不必迁移到新的 API (FusedLocationProviderApi)。使用 FuedLocationProviderApi 的巨大缺点是,如果您只启用网络位置提供程序,它似乎效果不佳。

话虽如此,对于原始问题,如果您决定使用 FusedLocationProviderApi,您可以使用SettingsApi 来确认当前用户对特定 LocationRequest 的设置。 SettingsApi 还提供了一种从设置不足中恢复的方法,即它可以显示“启用位置访问”对话框,您不必将用户重定向到设置页面。

【讨论】:

    猜你喜欢
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 2014-11-05
    相关资源
    最近更新 更多