如何在 android 中仅获取一次位置 (kotlin)
How to get location just once in android (kotlin)
我只想在 android 应用程序中获取一次位置信息。这就是我试图获取位置的方式
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
// in onCreateView
fusedLocationClient = LocationServices.getFusedLocationProviderClient(requireActivity())
// in function after checking permission
fusedLocationClient.lastLocation
.addOnSuccessListener { location: Location? ->
if (location != null) {
}
}
现在每次都会返回 null
位置,除非我打开 google 地图和 运行 我的应用程序然后 returns 位置正确
现在我知道我需要在调用 lastLocation
之前调用 requestLocationUpdates
但我无法在 kotlin
中找到任何解释如何将它用于 just one time
的解决方案].每个解决方案都建议一次又一次地获取位置。
我是否可以使用 requestLocationUpdates
仅获取一次位置?
最新版本play-services-location
添加方法getCurrentLocation()
fusedLocationClient.getCurrentLocation(LocationRequest.PRIORITY_HIGH_ACCURACY, null)
我只想在 android 应用程序中获取一次位置信息。这就是我试图获取位置的方式
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
// in onCreateView
fusedLocationClient = LocationServices.getFusedLocationProviderClient(requireActivity())
// in function after checking permission
fusedLocationClient.lastLocation
.addOnSuccessListener { location: Location? ->
if (location != null) {
}
}
现在每次都会返回 null
位置,除非我打开 google 地图和 运行 我的应用程序然后 returns 位置正确
现在我知道我需要在调用 lastLocation
之前调用 requestLocationUpdates
但我无法在 kotlin
中找到任何解释如何将它用于 just one time
的解决方案].每个解决方案都建议一次又一次地获取位置。
我是否可以使用 requestLocationUpdates
仅获取一次位置?
最新版本play-services-location
添加方法getCurrentLocation()
fusedLocationClient.getCurrentLocation(LocationRequest.PRIORITY_HIGH_ACCURACY, null)