Android 如何将GoogleAppClient定位服务与Google Api结合使用?
在一个教程中,我看到讲师使用GoogleAppClient进行类似这样的定位服务 我知道GoogleAppClient已被弃用,我们应该改用GoogleApi,它包含了本文所述的所有Google Api: 然而,这篇文章只讨论谷歌的客户服务,而根本不讨论定位服务 我的问题如下:Android 如何将GoogleAppClient定位服务与Google Api结合使用?,android,google-maps,google-api,location,Android,Google Maps,Google Api,Location,在一个教程中,我看到讲师使用GoogleAppClient进行类似这样的定位服务 我知道GoogleAppClient已被弃用,我们应该改用GoogleApi,它包含了本文所述的所有Google Api: 然而,这篇文章只讨论谷歌的客户服务,而根本不讨论定位服务 我的问题如下: 当我甚至尝试使用GoogleSignInClient时,我都找不到任何东西。我唯一的依赖项是:implementation'com.google.android.gms:play services location:18
implementation'com.google.android.gms:play services location:18.0.0'
private GoogleSignInClient GoogleSignInClient
…什么都没有显示
private GoogleApiClient googleApiClient;
private FusedLocationProviderClient fusedLocationProviderClient;
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(MainActivity.this);
googleApiClient = new GoogleApiClient.Builder(this)
.addApi(LocationServices.API)
.addOnConnectionFailedListener(this)
.addConnectionCallbacks(this)
.build();
…但我需要使用GoogleApi而不是GoogleAppClient来翻译它(因为它已被弃用)
谢谢大家! 您在视频中看到的是指不推荐使用的API 如果您想使用GooglePlayServiceAPI来监听您需要使用的新用户位置,您可以找到官方的示例实现 根据您的使用案例,考虑在设备未安装播放服务(如使用Android本机API)的情况下添加一个回退 使用新entrypoint类的示例代码(您不需要直接使用
GoogleApi
类):
fun getLastLocationIfApiAvailable(上下文:上下文):任务?{
val client=LocationServices.getFusedLocationProviderClient(上下文)
返回GoogleAppAvailability.getInstance()
.Checkapi可用性(客户端)
.onSuccessTask{{u->client.lastLocation}
.addOnFailureListener{{->Log.d(标记“位置不可用”)}
}
如果您需要处理
GoogleAppAvailability
的所有可能输出,请检查此您好,谢谢。然而,在视频中,他使用的是FusedLocationProviderClient,而不是FusedLocationProviderApi“客户端”引用了实例变量GoogleApiClient client。我添加了一个显示其代码的更新。@CodingChap我添加了一个代码示例。您不需要使用GoogleApi
class directlyOk,谢谢@MatPag!
fun getLastLocationIfApiAvailable(context: Context): Task<Location>? {
val client = LocationServices.getFusedLocationProviderClient(context)
return GoogleApiAvailability.getInstance()
.checkApiAvailability(client)
.onSuccessTask { _ -> client.lastLocation }
.addOnFailureListener { _ -> Log.d(TAG, "Location unavailable.")}
}