如何解决用户在应用程序启动后激活 GPS 时未收到位置使用 LocationEngine
我在 Kotlin 中使用 LocationEngine 并且它工作得很好,但是当用户在启动应用程序时还没有激活位置设置 (GPS) 时,永远不会收到位置。
当用户激活位置设置时,是否有任何通知我?还是我必须更改代码中的某些内容?
map.setStyle(Style.SATELLITE_STREETS) {
enableLocationComponent(it)
...
}
fun enableLocationComponent(mapStyle: Style) {
if (PermissionsManager.areLocationPermissionsGranted(this)) {
val locationComponent: LocationComponent = mapboxMap!!.locationComponent
val locationComponentActivationOptions =
LocationComponentActivationOptions.builder(this,mapStyle)
.useDefaultLocationEngine(false)
.build()
locationComponent.activateLocationComponent(locationComponentActivationOptions)
locationComponent.isLocationComponentEnabled = true
locationComponent.cameraMode = CameraMode.TRACKING
locationComponent.renderMode = RenderMode.COMPASS
initLocationEngine()
} else {
permissionsManager.requestLocationPermissions(this)
}
}
private fun initLocationEngine() {
locationEngine = LocationEngineProvider.getBestLocationEngine(this)
val request: LocationEngineRequest =
LocationEngineRequest.Builder(DEFAULT_INTERVAL_IN_MILLISECONDS) //1000L
.setPriority(LocationEngineRequest.PRIORITY_HIGH_ACCURACY)
.setMaxWaitTime(DEFAULT_MAX_WAIT_TIME) //5000L
.build()
locationEngine.requestLocationUpdates(request,locationListenerCallback,mainLooper)
locationEngine.getLastLocation(locationListenerCallback)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。