Android:使用FusedLocationProviderClient获取一次位置?

时间:2017-12-28 06:12:35

标签: android location fusedlocationproviderapi android-fusedlocation

弃用FusedLocationProviderClient时,我很难使用{{1}}在点击按钮后只获取一次用户位置。

2 个答案:

答案 0 :(得分:4)

  

我很难使用FusedLocationProviderClient来获取用户的位置一次......

FusedLocationProviderClient具有以下方法

其中LocationRequest具有setNumUpdates (int numUpdates)方法。通过numUpdates = 1您将“获取用户的位置”

答案 1 :(得分:0)

新版本的 play-services-location 添加了方法 getCurrentLocation()

这就是我获取位置的方式

AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

在我的片段中

private lateinit var fusedLocationClient: FusedLocationProviderClient

然后在获取位置权限代码后,这就是我获取位置的方式

  fusedLocationClient.getCurrentLocation(LocationRequest.PRIORITY_HIGH_ACCURACY, null)
  fusedLocationClient.lastLocation
                .addOnSuccessListener { location: Location? ->
                    // Got last known location. In some rare situations this can be null.
                    if (location != null) {
                        textView.setText(getLocationNameFromLatLon(location.latitude, location.longitude))
                    }
                }