Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将GoogleAppClient定位服务与Google Api结合使用?_Android_Google Maps_Google Api_Location - Fatal编程技术网

Android 如何将GoogleAppClient定位服务与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

在一个教程中,我看到讲师使用GoogleAppClient进行类似这样的定位服务

我知道GoogleAppClient已被弃用,我们应该改用GoogleApi,它包含了本文所述的所有Google Api:

然而,这篇文章只讨论谷歌的客户服务,而根本不讨论定位服务

我的问题如下:

  • 当我甚至尝试使用GoogleSignInClient时,我都找不到任何东西。我唯一的依赖项是:
    implementation'com.google.android.gms:play services location:18.0.0'
  • 我的意思是,当我键入:
    private GoogleSignInClient GoogleSignInClient
    …什么都没有显示

  • 我找不到任何位置服务的GoogleApi(正如预期的那样,因为甚至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.")}
    }