弃用FusedLocationProviderClient
时,我很难使用{{1}}在点击按钮后只获取一次用户位置。
答案 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))
}
}