自从我与Google Play服务合作以来已经有一段时间了,现在我正在实现一项需要位置跟踪的功能。跟随使用过时的示例使用GoogleApiClient之后,我在Android Developers博客上找到了有关新的Location 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照顾它是否安全?

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

最佳答案

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


  除非您更新Google Play服务,否则[app name]不会运行。


因此,我认为删除支票是安全的。

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

10-08 18:20