Java Android FusedLocationProviderClient问题

Java Android FusedLocationProviderClient问题,java,android,google-maps,mobile,Java,Android,Google Maps,Mobile,我一直在遵循一个教程,但是它非常旧,并且使用了不推荐的GoogleAppClient。奇怪的是,当我使用 implementation 'com.google.android.gms:play-services-maps:17.0.0' implementation 'com.google.android.gms:play-services-location:17.0.0' 它的工作原理是在地图上显示位置。我假设它不会工作,并且在调试之前它不会生成。 我已经尝试使用更新版本来推动一种新的方

我一直在遵循一个教程,但是它非常旧,并且使用了不推荐的GoogleAppClient。奇怪的是,当我使用

implementation 'com.google.android.gms:play-services-maps:17.0.0' 
implementation 'com.google.android.gms:play-services-location:17.0.0' 
它的工作原理是在地图上显示位置。我假设它不会工作,并且在调试之前它不会生成。 我已经尝试使用更新版本来推动一种新的方式,其中不包括fusedLocationApi。 随附的是fusedLocationApi和googleClientApi的工作版本,以及更新的代码,该代码在应用程序构建时构建,但没有在地图上显示位置

也许在更新的代码中缺少了一些东西,而这些代码没有生成要在地图上显示的位置

我刚接触安卓系统,对任何帮助都表示感谢:)

旧工作版本-

更新的非工作版本-

你的问题就在这里。
当您授予应用程序权限时,它不会执行位置搜索,因此如果您授予了它权限,您需要编写一个方法来执行此操作。

仍然有点困惑,因此在if语句之后,我需要创建一个返回位置的方法?我是不是已经有东西在找位置了,还是我说错了?在我正在查看的一个示例中,if语句中没有任何内容,因此我将其更改为:
fusedLocationProviderClient.requestLocationUpdates(locationRequest、locationCallback、Looper.myLooper());mMap.isMyLocationEnabled()但地图上没有显示标记
 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
        {
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)
            {
                // add here
                fusedLocationProviderClient?.requestLocationUpdates(locationRequest, locationCallback, Looper.myLooper())
                mMap.isMyLocationEnabled = true
            }else
            {
                checkLocationPermission()
            }
        }