Realtime gps optimized for efficiency

This commit is contained in:
wengki81 2025-06-21 01:11:06 +08:00
parent 39bfc59817
commit 22c6277d68

View File

@ -291,13 +291,17 @@ class DumonGeolocation : Plugin() {
}
private fun adjustIntervalAndSensorRate(speed: Float) {
val targetMode = if (speed > 3.0f) GpsTrackingMode.DRIVING else GpsTrackingMode.NORMAL
val targetInterval = when {
speed > 5f -> 3000L
speed > 1.5f -> 8000L
speed > 0.3f -> 20000L
else -> 30000L
}
if (currentTrackingMode != targetMode) {
currentTrackingMode = targetMode
gpsManager?.stop()
gpsManager?.start(currentTrackingMode)
Log.d("DUMON_GEOLOCATION", "Switched GPS mode to $currentTrackingMode")
if (emitIntervalMs != targetInterval) {
emitIntervalMs = targetInterval
gpsManager?.setPollingInterval(targetInterval)
Log.d("DUMON_GEOLOCATION", "Auto-set emitIntervalMs = $emitIntervalMs ms")
}
imuManager?.setSensorDelayBySpeed(speed)