自从我与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中按了其他按钮,则不会调用侦听器。