【问题标题】:No need to manually check Google Play Services version anymore?不再需要手动检查 Google Play 服务版本了吗?
【发布时间】:2018-02-20 11:05:38
【问题描述】:

我使用 Google Play 服务已经有一段时间了,现在我正在实施一项需要位置跟踪的功能。在关注了一个使用 GoogleApiClient 的过时示例之后,我在 Android 开发者博客上找到了这篇关于新位置 API 的帖子:

https://android-developers.googleblog.com/2017/06/reduce-friction-with-new-location-apis.html

FusedLocationProviderClient client =
    LocationServices.getFusedLocationProviderClient(this);

client.requestLocationUpdates(LocationRequest.create(), pendingIntent)
    .addOnCompleteListener(new OnCompleteListener() {
      @Override
      public void onComplete(@NonNull Task task) {
        Log.d("MainActivity", "Result: " + task.getResult());
      }
    });
}

引起我注意的是帖子底部写的一句话:

新的 API 将自动解决某些连接失败的问题 你,所以你不需要为诸如提示之类的事情编写代码 用户更新 Google Play 服务

由于我已经使用GoogleApiAvailabilty 编写了那段代码,我很好奇将其删除并让FusedLocationProviderClient 处理它是否安全?

我试图找到另一个来源来验证这一点,但失败了,对博客文章底部的半行不太满意,因此在此处发布问题。

【问题讨论】:

  • 我很好奇删除它是否安全 - 他们添加该注释是有原因的..
  • 是的,但我无法在任何实际文档中验证它,它只是博客文章中的半行

标签: android google-play-services fusedlocationproviderclient


【解决方案1】:

好的,我会在快速测试后回答我自己的问题。我暂时删除了确保 Google Play 服务可用且版本正确的检查。然后将应用程序安装在没有 Google Play 服务的模拟器上,当我尝试使用 LocationServices API 时,我收到一条提示通知:

除非您更新 Google Play 服务,否则[应用名称] 将不会运行。

所以我想删除检查是安全的。

值得注意的是,除非用户实际与通知进行交互,否则似乎不会调用侦听器(成功/失败/完成),例如,如果他们只是在您的应用 UI 中按下其他内容,则不会调用侦听器。

【讨论】:

    猜你喜欢
    • 2012-11-25
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多