【发布时间】:2018-12-21 03:22:19
【问题描述】:
我尝试在我的应用程序中使用 GM API 获取当前位置(使用 Android Studio)。但是,如果我单击触发 getLocation() 功能的按钮,我总是会进入 catch{} 块,我不知道为什么。 我的移动设备已连接进行测试。
这里是 getLocation() 函数:
fun getLocation() {
var locationManager = getSystemService(LOCATION_SERVICE) as LocationManager?
var locationListener = object : LocationListener{
override fun onLocationChanged(location: Location?) {
var latitute = location!!.latitude
var longitute = location!!.longitude
Log.i("test", "Latitute: $latitute ; Longitute: $longitute")
}
override fun onStatusChanged(provider: String?, status: Int, extras: Bundle?) {
}
override fun onProviderEnabled(provider: String?) {
}
override fun onProviderDisabled(provider: String?) {
}
}
try {
locationManager!!.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0L, 0f, locationListener)
} catch (ex:SecurityException) {
Toast.makeText(applicationContext, "Fehler bei der Erfassung!", Toast.LENGTH_SHORT).show()
}
}
这里是 onCreate 函数:
class CurrentLocationActivity : AppCompatActivity() {
lateinit var mapFragment : SupportMapFragment
lateinit var googleMap : GoogleMap
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_current_location)
//Karte erstellen
mapFragment = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment
mapFragment.getMapAsync(OnMapReadyCallback {
googleMap = it
})
//OnClickListener um Location zu speichern
btnGetCurrentLocation.setOnClickListener {
getLocation()
}
}
【问题讨论】:
-
检查是否授予定位权限
-
不知何故我无法检查权限。如果我单击 Alt + Enter 并单击添加权限检查没有任何反应。此外,如果我输入手册,AndroidStudio 会在 Manifest.permission 中说,这是一个未解决的参考:权限
-
尝试在
Settings > Apps > Your App > Info > Permissions上手动设置访问位置的权限。如果可行,我们会发现问题,我会为您提供解决方案
标签: android google-maps kotlin maps currentlocation