Android Studio模拟器返回空位置数据



我正在学习Kotlin,我正在尝试制作一个简单的应用程序,显示用户的长/晚。一切似乎都应该工作,但位置数据不断抛出'null else{}'的情况。下面是我的代码:

class MainActivity : AppCompatActivity() {
val RequestPermissionCode = 1
var mLocation: Location? = null
private lateinit var fusedLocationClient: FusedLocationProviderClient
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
getLastLocation()
}
fun getLastLocation(){
if(ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
requestPermission()
}
else{
fusedLocationClient.lastLocation
.addOnSuccessListener {location: Location? ->
mLocation = location
if(location != null){
latitude.text = location.latitude.toString()
longitude.text = location.longitude.toString()
}
else{
latitude.text = "LOCATION_DENIED"
longitude.text = "LOCATION_DENIED"
}
}
}
}
private fun requestPermission(){
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), RequestPermissionCode)
this.recreate()
}

}

任何帮助都将非常感激!我都要开始抓狂了,在谷歌上也找不到答案):

我注意到模拟器有位置数据的问题,加上lastLocation没有发出位置请求,所以很有可能没有位置数据。您需要的是requestLocationUpdate方法,这样它就可以检索用户的活动位置。此外,您将有更好的运气在物理设备上的最后位置。

相关内容

  • 没有找到相关文章

最新更新