Navigation sound at start sometimes missing

3 weeks ago 12
ARTICLE AD BOX

Please check for me if the code is correct, the function call position is reasonable.

Because there is currently a problem that the navigation sound when starting Navigation is sometimes absent.

Expect: The navigation sound must always be played when starting navigation
SDK version: 5.3.2

suspend fun initializeNavApi() { if (isNavigatorInitialized) { return } logMessage(message = "ODRD Navigation SDK is initializing") suspendCoroutine { continuation -> NavigationApi.getNavigator( application, object : NavigationApi.NavigatorListener { override fun onNavigatorReady(navigatorResult: Navigator) { logMessage(message = "ODRD Navigation SDK initialized successfully") navigator = navigatorResult coroutineScope.launch(Dispatchers.Main) { setAudioGuidance(cdgPreferencesDataSource.isMutedVoiceNavigator.first()) } completableDeferredNavigator.complete(navigatorResult) isSdkReady.tryEmit(isNavigatorInitialized && isVehicleReporterInitialized && isLocationTrackingEnabled) continuation.resume(Unit) } override fun onError(@NavigationApi.ErrorCode errorCode: Int) { logMessage(message = "ODRD Navigation SDK initialized failed with error code = $errorCode") completableDeferredNavigator.completeExceptionally(Exception("initializeNavApi with error code = $errorCode")) continuation.resumeWithException(Exception("initializeNavApi with error code = $errorCode")) } }, ) } } fun startNavigation(odrdWaypoint: OdrdWaypoint) { logMessage(message = "ODRD Navigation SDK is starting navigation to odrdWaypoint: $odrdWaypoint, navigator: $navigator") val wayPoint = odrdWaypoint.toSdkModel() if (wayPoint == null) { stopNavigation() return } val routingOptions = RoutingOptions() .travelMode(RoutingOptions.TravelMode.TAXI) .routingStrategy(RoutingOptions.RoutingStrategy.DEFAULT_BEST) requireNavigator.setDestination(wayPoint, routingOptions) .setOnResultListener { routeStatus -> logMessage(message = "ODRD Navigation SDK started navigation with routeStatus: $routeStatus") coroutineScope.launch(Dispatchers.Main) { setAudioGuidance(cdgPreferencesDataSource.isMutedVoiceNavigator.first()) requireNavigator.startGuidance() } } } suspend fun setAudioGuidance(isMuted: Boolean) { logMessage(message = "ODRD Vehicle Reporter > setAudioGuidance, isMuted: $isMuted") if (!isNavigatorInitialized) { logMessage(message = "ODRD Vehicle Reporter > setAudioGuidance, isNavigatorInitialized: $isNavigatorInitialized") return } cdgPreferencesDataSource.setIsMutedVoiceNavigator(isMuted) if (isMuted) { requireNavigator.setAudioGuidance(SILENT) } else { requireNavigator.setAudioGuidance(VOICE_ALERTS_AND_GUIDANCE) } }
Read Entire Article