【问题标题】:Android setOnMyLocationChangeListener is deprecated不推荐使用 Android setOnMyLocationChangeListener
【发布时间】:2016-04-06 07:18:54
【问题描述】:

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

【问题讨论】:

  • 我喜欢懦夫投反对票而没有评论为什么

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


【解决方案1】:

setOnMyLocationChangeListener 方法现在是 Deprecated

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

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

【讨论】:

  • 当然,这就是文档所说的,但我认为 OP 的意图是他们目前正在使用 OnMyLocationChangeListener.onMyLocationChange 在地图上的蓝点移动时获取回调,并且他们想要找到一种不被弃用的方法来继续这样做......而且没有。不推荐使用的方法是编写自己的代码来手动启动和停止自己的 FusedLocationApi 位置更新,这是 IMO 愚蠢的,因为您的参数可能与 Map 使用的参数不同,因此您可能无法在蓝点移动的同时。
  • 我同意 swooby,他们删除了一种非常简单的方法来获取我的位置,并更新地图上的移动,并且 map.getMyLocation() 也已弃用。现在谷歌正在强迫我们编写自己的代码并“向我们推销”googleplay 服务对开发者来说是最好的想法,而他们只会给我们带来越来越多的问题
【解决方案2】:

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 或者您可以像这样快速获取用户位置:fusedLocationProviderClient?.lastLocation?.addOnSuccessListener { userLocation -> }
    猜你喜欢
    • 1970-01-01
    • 2022-10-05
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 2016-10-20
    相关资源
    最近更新 更多