2

We did experience some inconsistency from the SKNavigationState updates with Android.

Sometimes we get inconsistent SKNavigationState object after starting navigation, therefore navigation stopped working.

A strange thing is, that sometimes it does work. First we suspected certain builds to be corrupt, but we had some builds where it did work work and did not work when deployed several times even to the same device.

We tried SDK version 2.5.0., 2.5.1 and 3.0.2 in combination with two versions of our code. We had working and not working states with equal version combinations so we don't think this has an influence.

Furthermore we checked the SKAdvisorSettings initialization and the gradle files.

Is this a known problem? Anyone knows how to solve it?

    SKAdvisorSettings Initialization:
    public void setAdvicesAndStartNavigation(Application application, SKMapSurfaceView skMapSurfaceView) {
        […]

        initializeTextToSpeech(application);
        final SKAdvisorSettings advisorSettings = new SKAdvisorSettings();

        if (application.getResources().getConfiguration().locale.getLanguage().equals(Locale.GERMAN.toString())) {
            advisorSettings.setLanguage(SKAdvisorSettings.SKAdvisorLanguage.LANGUAGE_DE);
            advisorSettings.setAdvisorVoice("de");
        } else if (application.getResources().getConfiguration().locale.getLanguage().equals(Locale.FRENCH.toString())) {
            advisorSettings.setLanguage(SKAdvisorSettings.SKAdvisorLanguage.LANGUAGE_FR);
            advisorSettings.setAdvisorVoice("fr");
        } else if (application.getResources().getConfiguration().locale.getLanguage().equals("es")) {
            advisorSettings.setLanguage(SKAdvisorSettings.SKAdvisorLanguage.LANGUAGE_ES);
            advisorSettings.setAdvisorVoice("es");
        } else {
            advisorSettings.setLanguage(SKAdvisorSettings.SKAdvisorLanguage.LANGUAGE_EN);
            advisorSettings.setAdvisorVoice("en");
        }

        advisorSettings.setAdvisorConfigPath([…].getMapResourcesDirPath() + "/Advisor");
        advisorSettings.setResourcePath([…].getMapResourcesDirPath() + "/Advisor/Languages");

        advisorSettings.setAdvisorType(SKAdvisorSettings.SKAdvisorType.TEXT_TO_SPEECH);
        SKRouteManager.getInstance().setAudioAdvisorSettings(advisorSettings);

        launchNavigation(application, skMapSurfaceView);
    }


    Example #1: incorrect distance
    SKNavigationState [adviceID=-1,
    currentSpeed=0.0,
    currentSpeedLimit=0.0,
    countryCode=,
    lastAdvice=false,
    showSignPost=false,
    currentAdviceCurrentStreetName=,
    currentAdviceNextStreetName=,
    currentAdviceCurrentOsmStreetType=UNDEFINED,
    currentAdviceNextOsmStreetType=UNDEFINED,
    currentAdviceDistanceToAdvice=-1635951600, // <------ incorrect
    currentAdviceTimeToDestination=-1636254096,
    currentAdviceDistanceToDestination=-1635951952,
    currentAdviceVisualAdviceFile=,
    currentAdviceAudioAdvices=[None],
    currentAdviceExitNumber=,
    nextAdviceCurrentStreetName=,
    nextAdviceNextStreetName=,
    nextAdviceDistanceToAdvice=-1635998000,
    nextAdviceVisualAdviceFile=,
    nextAdviceCurrentOsmStreetType=UNDEFINED,
    nextAdviceNextOsmStreetType=UNDEFINED,
    distanceToDestination=0.0,
    firstCrossingDescriptor=SKCrossingDescriptor [crossingType=0,
    routeAngle=0.0,
    turnToRight=false,
    directionUK=false,
    allowedRoutesAngles=null,
    forbiddenRoutesAngles=null],
    secondCrossingDescriptor=SKCrossingDescriptor [crossingType=0,
    routeAngle=0.0,
    turnToRight=false,
    directionUK=false,
    allowedRoutesAngles=null,
    forbiddenRoutesAngles=null],
    adviceInstruction=,
    viaPointsInfo=null,
    isLastVisualAdvice=false,
    currentStreetDirection=DIRECTION_INVALID,
    nextStreetDirection=DIRECTION_INVALID]

    Example #2: distance
    SKNavigationState [adviceID=0,
    currentSpeed=0.0,
    currentSpeedLimit=0.0,
    countryCode=DE,
    lastAdvice=false,
    showSignPost=true,
    currentAdviceCurrentStreetName=,
    currentAdviceNextStreetName=,
    currentAdviceCurrentOsmStreetType=TRACK,
    currentAdviceNextOsmStreetType=UNDEFINED,
    currentAdviceDistanceToAdvice=130, // <------ correct
    currentAdviceTimeToDestination=22,
    currentAdviceDistanceToDestination=130,
    currentAdviceVisualAdviceFile=/storage/emulated/0/Android/data/[…].debug/files/SKMaps//Advisor/Visual/153844/0.png,
    currentAdviceAudioAdvices=[in_open,
    130_meters,
    you_will_reach_your_destination],
    currentAdviceExitNumber=,
    nextAdviceCurrentStreetName=,
    nextAdviceNextStreetName=,
    nextAdviceDistanceToAdvice=-1582944816,
    nextAdviceVisualAdviceFile=,
    nextAdviceCurrentOsmStreetType=UNDEFINED,
    nextAdviceNextOsmStreetType=UNDEFINED,
    distanceToDestination=130.0,
    firstCrossingDescriptor=SKCrossingDescriptor [crossingType=0,
    routeAngle=90.0,
    turnToRight=false,
    directionUK=false,
    allowedRoutesAngles=null,
    forbiddenRoutesAngles=null],
    secondCrossingDescriptor=SKCrossingDescriptor [crossingType=0,
    routeAngle=0.0,
    turnToRight=false,
    directionUK=false,
    allowedRoutesAngles=null,
    forbiddenRoutesAngles=null],
    adviceInstruction=in 130 meters you will reach your destination,
    viaPointsInfo=null]
Jan
  • 21
  • 2
  • Did you solve the problem somehow? I am having the same problem as you. – Luan Barbosa Feb 08 '17 at 11:15
  • Hi Luan, no not so far, we had a call with Telenav yesterday, but we did not get any solution so far. Since when did you observe this? – Jan Feb 09 '17 at 17:08
  • We have a 2.X version (don't remember precisely) and we have to update Skobbler to 2.5.1 to solve the problem related to libpng Google Play warning. No matter the version that we update to, the problem appears. – Luan Barbosa Feb 09 '17 at 18:18
  • What was Telenav feedback for this problem? – Luan Barbosa Feb 10 '17 at 11:22
  • primarily - It works in the Demo APK.... but they wanted to ask the programmers of the routing engine and get backt o us on this. – Jan Feb 14 '17 at 10:39
  • Apparently, out developers found some problem in the build process and the problem was solved. Unfortunately they did not provide details. – Jan Mar 29 '17 at 13:38

0 Answers0