不推荐使用Android setOnMyLocationChangeListener

时间:2016-04-06 07:18:54

标签: java android google-maps android-maps-v2

Android Google Map的 setOnMyLocationChangeListener 方法现已弃用。 有谁知道如何绕过它?感谢。

3 个答案:

答案 0 :(得分:12)

setOnMyLocationChangeListener方法现在是 Deprecated

您可以改为使用com.google.android.gms.location.FusedLocationProviderApi

  

FusedLocationProviderApi是最新的API,也是最好的   在Android中获取位置的可能性。

答案 1 :(得分:2)

请求位置更新(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)

答案 2 :(得分:1)

FusedLocationProviderApi现在也已被弃用。尝试FusedLocationProviderClient