Android Google Maps的setOnMyLocationChangeListener方法现已过时。 有人知道如何解决这个问题吗?谢谢。
Android Google Maps的setOnMyLocationChangeListener方法现已过时。 有人知道如何解决这个问题吗?谢谢。
setOnMyLocationChangeListener
方法现在已经被 废弃。Deprecated
您可以使用 com.google.android.gms.location.FusedLocationProviderApi
替代它。
FusedLocationProviderApi 是目前 Android 平台上获取位置信息的最新 API,也是最好的选择之一。
请求位置更新(https://developer.android.com/training/location/request-updates)中有详细的步骤说明。简而言之,
1) 定义变量。
val fusedLocationProviderClient by lazy {
LocationServices.getFusedLocationProviderClient(requireContext())
}
val locationCallback = object : LocationCallback() {
override fun onLocationResult(locationResult: LocationResult?) {
locationResult ?: return
for (location in locationResult.locations){
moveToLocation(location)
}
}
}
val locationRequest = LocationRequest.create().apply {
interval = 10_000
fastestInterval = 5_000
priority = LocationRequest.PRIORITY_HIGH_ACCURACY
}
2) 请求位置更新。确保您事先获取了位置权限。
fusedLocationProviderClient.requestLocationUpdates(
locationRequest,
locationCallback,
Looper.getMainLooper()
)
3) 完成后,删除更新。
fusedLocationProviderClient.removeLocationUpdates(locationCallback)