Java Android FusedLocationProviderClient问题
我一直在遵循一个教程,但是它非常旧,并且使用了不推荐的GoogleAppClient。奇怪的是,当我使用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' 它的工作原理是在地图上显示位置。我假设它不会工作,并且在调试之前它不会生成。 我已经尝试使用更新版本来推动一种新的方
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()
}
}