Android: 使用FusedLocationProviderClient 获取一次位置?
Android: Use FusedLocationProviderClient to get location once?
随着 FusedLocationProviderApi
被弃用,我很难使用 FusedLocationProviderClient
在单击按钮后仅一次获取用户的位置。
I'm having a hard time using FusedLocationProviderClient to get location of the user just once...
FusedLocationProviderClient有以下方法
- getLastLocation()那个returns一个位置"just once"
- requestLocationUpdates (LocationRequest request, LocationCallback callback, Looper looper)
- requestLocationUpdates (LocationRequest request, PendingIntent callbackIntent)
其中 LocationRequest, in its turn, has the setNumUpdates (int numUpdates) 方法。通过传递 numUpdates = 1
,您将 "get location of the user just once"。
新版本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))
}
}
随着 FusedLocationProviderApi
被弃用,我很难使用 FusedLocationProviderClient
在单击按钮后仅一次获取用户的位置。
I'm having a hard time using FusedLocationProviderClient to get location of the user just once...
FusedLocationProviderClient有以下方法
- getLastLocation()那个returns一个位置"just once"
- requestLocationUpdates (LocationRequest request, LocationCallback callback, Looper looper)
- requestLocationUpdates (LocationRequest request, PendingIntent callbackIntent)
其中 LocationRequest, in its turn, has the setNumUpdates (int numUpdates) 方法。通过传递 numUpdates = 1
,您将 "get location of the user just once"。
新版本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))
}
}