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) { 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) { if (emitIntervalMs != targetInterval) {
currentTrackingMode = targetMode emitIntervalMs = targetInterval
gpsManager?.stop() gpsManager?.setPollingInterval(targetInterval)
gpsManager?.start(currentTrackingMode) Log.d("DUMON_GEOLOCATION", "Auto-set emitIntervalMs = $emitIntervalMs ms")
Log.d("DUMON_GEOLOCATION", "Switched GPS mode to $currentTrackingMode")
} }
imuManager?.setSensorDelayBySpeed(speed) imuManager?.setSensorDelayBySpeed(speed)