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

Android Studio Emulator Returning Null Location Data

我正在学习 Kotlin,我正在尝试制作一个简单的应用程序来显示用户 long/lat。一切似乎都应该正常工作,但位置数据不断抛出 '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()
}

}

如有任何帮助,我们将不胜感激!我要开始拔头发了,在 Google 上找不到答案):

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