【发布时间】:2021-04-12 14:41:54
【问题描述】:
我只想在 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,除非我打开谷歌地图并运行我的应用程序,然后它会正确返回位置
现在我知道在调用lastLocation 之前我需要先调用requestLocationUpdates,但我无法在kotlin 中找到任何解释如何将其用于just one time 的解决方案。每个解决方案都建议一次又一次地获取位置。
无论如何我可以使用requestLocationUpdates 来获取一次位置吗?
【问题讨论】:
-
@rahat 是的,我已经经历过了,但建议的答案要么已过时,要么没有任何 kotlin 代码
标签: android kotlin android-location android-maps