在Android应用程序(Kotlin)中按下按钮时尝试获取最后一个已知位置
正如标题所述,我想知道按钮按下时的最后一个位置,但它不起作用,我不确定出了什么问题。在我的Android清单中,我有:在Android应用程序(Kotlin)中按下按钮时尝试获取最后一个已知位置,android,kotlin,Android,Kotlin,正如标题所述,我想知道按钮按下时的最后一个位置,但它不起作用,我不确定出了什么问题。在我的Android清单中,我有: <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 我使用的两种方法是: private fun che
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
我使用的两种方法是:
private fun checkPermissions() {
val PERMISSION_REQUEST = 10
val permissions = arrayOf(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION)
requestPermissions(permissions, PERMISSION_REQUEST)
}
以及:
它不是100%确定你会得到最后一个已知的位置 在以下情况下,location对象可能为null:
- “设备设置”中的“位置”已关闭。即使之前检索到了最后一个位置,结果也可能为null,因为 禁用位置也会清除缓存
- 设备从未记录其位置,可能是新设备或已恢复出厂的设备 设置
- 设备上的Google Play服务已重新启动,并且没有已请求位置的活动融合位置提供程序客户端 服务重新启动后。为了避免这种情况,您可以创建一个 新的客户端和请求位置更新自己
以下是来自官方文档的更多信息您是否收到任何错误?没有错误。我的日志中没有显示任何内容
private fun checkPermissions() {
val PERMISSION_REQUEST = 10
val permissions = arrayOf(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION)
requestPermissions(permissions, PERMISSION_REQUEST)
}
fun getLastKnownLocation() {
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
checkPermissions()
fusedLocationClient.lastLocation.addOnSuccessListener { location ->
if (location != null) {
// use your location object
// get latitude , longitude and other info from this
longitude = location.longitude
latitude = location.latitude
d("getlastknown Lat:", latitude.toString())
d("getlastknown Lon:", longitude.toString())
}
}
}