随着 FusedLocationProviderApi
的弃用,我很难使用 FusedLocationProviderClient
单击按钮后一次获取用户的位置。
我很难使用fusedlocationproviderclient来获取用户的位置...
fusedlocationProviderClient具有以下方法
- 返回位置的getLastLocation()"仅一次"
- requestLocationupdates(LocationRequest请求,位置Callback Callback,Looper Looper)
- requestLocationupdates(locationRequest请求,pendingIntent callbackintent)
thineRequest依次具有setNumupdates(int numupdates)方法。通过传递numUpdates = 1
,您将"仅获取一次用户的位置" 。
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))
}
}