Skobbler SDK Android - SKNavigationState 对象损坏/不一致

2024-01-15

我们确实遇到了 SKNavigationState 更新与 Android 的一些不一致问题。

有时,我们在开始导航后会得到不一致的 SKNavigationState 对象,因此导航停止工作。

奇怪的是,有时它确实有效。首先,我们怀疑某些构建已损坏,但我们有一些构建可以正常工作,但即使部署到同一设备多次也无法正常工作。

我们尝试将 SDK 版本 2.5.0.、2.5.1 和 3.0.2 与我们的代码的两个版本结合起来。我们的工作状态和非工作状态具有相同的版本组合,因此我们认为这不会产生影响。

此外,我们检查了 SKAdvisorSettings 初始化和 gradle 文件。

这是一个已知问题吗?有人知道如何解决吗?

    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]

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Skobbler SDK Android - SKNavigationState 对象损坏/不一致 的相关文章

  • 使用合并适配器;寻找一种方法来确定 ListActivity onListItemClicked 方法中列表项的数据类型

    我使用 MergeAdapter 创建一个分段列表 其中列表的每个部分都包含不同类型的基础数据 一切都按预期进行 然而 在确定所选列表项背后的数据类型时 ListActivity 的 onListItemClicked 方法似乎比应有的更复
  • 停止在列表视图中滚动

    我的活动中有一个列表视图和一个图像按钮 当我单击图像按钮时 我想转到列表中的特定位置 我通过调用列表上的 setSelection intposition 来实现此目的 当用户滑动列表视图然后单击图像按钮时会出现问题 列表将转到指定位置但继
  • Android 堆栈大小

    我如何获取和更改 Android 应用程序的堆栈大小 即使是主线程 主线程堆栈大小是在固件中设置的 无法修改 除非修改您自己手机的固件 正如斯特朗先生指出的那样 对于您分叉的线程 您可以设置自己的堆栈大小
  • 411 需要内容长度

    我正在尝试使用 Android Apache HttpClient 执行 POST 但它返回错误 411 Content Length required 这是代码 HttpClient httpClient new DefaultHttpC
  • Android 4.3 虚拟设备 CPU/ABI - 未安装系统映像(eclipse)

    I m trying to set up a new device but I can not continue with the process I think it s because the target version is 4 3
  • Android中的OpenGL用于视频显示

    是否可以使用 OpenGL 来显示视频并能够在运行时调整视图大小 是的 它的工作原理是通过 glTexSubImage2D 将每个帧作为纹理上传 我已经测试了基于 FFmpeg 的解码器的输出 效果很好
  • 使用 Kotlin 协程替换 LocalBroadcastManager 以进行 Firebase 消息传递

    使用时Firebase 云消息传递 https firebase google com docs cloud messaging android client在 Android 上 通常需要通知当前Activity传入的推送通知 推荐的方法
  • 在 Android 中完成一项活动?

    我有一些活动 Home Activity gt Activity 1 gt Activity 2 gt Activity 3 gt HomeActivity finish finish finish Home Activity gt Act
  • 如何在Android项目中使用libffmpeg.so?

    我正在尝试在 Android 中创建一个屏幕录制应用程序 为此 我使用 FFmpeg 我已经创建了 libffmpeg so 文件 现在我想在 Android 项目中使用相同的方法来调用它的本机函数 我怎样才能做到这一点 本教程提供了有关此
  • 通过拖动块来选择多个项目

    首先 让我告诉你 我对此感到压力很大 因为我什至不知道概念 方法名称 所以我什至无法在谷歌中搜索它 因为我不知道关键字 但我会尝试我的最好解释一下 请随意修改我的内容和标题 我想要实现的是 我的视图组包含许多子视图 或者它可以是 GridV
  • Buildozer Numpy RuntimeError:工具链损坏:无法链接简单的 C 程序

    用 Python 编写我的第一个 Android 应用程序并使用 Buildozer 对其进行打包 因为稍后在项目中需要使用numpy 所以我尝试打包以下测试代码 import numpy import kivy kivy require
  • setOnTouchListener() 给我一个错误

    button setOnTouchListener new OnTouchListener public void onClick View v Toast makeText MainActivity this YOUR TEXT 5000
  • 带有可点击区域的 Android 图像

    我需要建议如何在 Android 下实现以下功能 我需要一个表示类似于图形 来自离散数学 的图像 具有顶点和边缘 我可以在其中单击每个顶点或边缘并触发不同的操作 请告诉我如何实现这一目标 也许与imagebuttons 或另一种表示此功能的
  • Android 改造参数化@Headers

    我正在使用 OAuth 每次发出请求时都需要将 OAuth 令牌放入标头中 我看到 Header注释 但是有没有办法让它参数化 以便我可以在运行时传入 这是概念 Header Authorization OAuth var api vers
  • 改变换行行为

    我可以在 TextView 中使用 Spannable 创建具有不同外观 下划线 删除线等的跨度 我怎样才能做同样的事情来改变换行行为 特别是 我不希望电子邮件地址在中间换行 我希望它像一个单词一样 I tried 包裹在一起跨度 http
  • 如何在打开导航抽屉时使背景 Activity 变小?

    我想做我的背景Activity打开时稍微小一点Navigation Drawer 模拟存在的效果Airbnb应用 我想最好的解释是截图 但重点不是让 View 变小 而是让它成为与 Drawer 打开 关闭动画同步的动画 因此 如果您开始打
  • 在 WebView 中打开 PDF 文件

    大约 2 天 我尝试在我的自定义中打开 PDF 文件WebvView 这是我的WebView code import android app AlertDialog import android app ProgressDialog imp
  • 上传失败您应该使用 http 和 https 作为您的 Web 意图过滤器的方案

    上传失败 您应该使用 http 和 https 作为您的 Web 意图过滤器的方案 我在将免安装应用上传到 Play 商店时收到此错误 我在清单中声明了 http 和 https 的意图过滤器 如下所示
  • 如何在给定的纬度和经度处使用标记/覆盖项目启动地图意图?

    我有一个纬度和经度 我想打开以该点为中心的谷歌地图 所以我使用以下代码 Intent intent new Intent android content Intent ACTION VIEW Uri parse geo lat lng st
  • 智能手机可以通过 3G/4G 进行点对点通信吗?

    我正在尝试编写一个应用程序 将数据从一个 Android 设备传输到另一个 Android 设备 但这些设备很可能位于城市 州或国家的不同部分 直接的方法是拥有一台中央服务器 或任何类型的服务器 但我试图避免使用中央服务器 我试图传递的数据

随机推荐

  • 如何在 Windows 7 64 位上安装 GitHub 时修复此错误

    http picsmashup com images jnasdh JPG http picsmashup com images jnasdh JPG 组件 Microsoft NET Framework 4 x86 和 x64 安装失败
  • Wix Burn 捆绑包 - 必须是管理员

    我创建了一个 WIX 刻录包 在捆绑包中 我安装了 Net 4 如果未安装 然后再安装 2 个 msi 文件 1 是第三部分 msi 另一个是我使用 WIX 为我的软件创建的 msi 我需要成为计算机上的管理员才能运行这些 msi 文件 如
  • OpenCV 中组合仿射变换的内置函数?

    Opencv中有没有结合仿射变换的内置函数 我也可以自己编写它 但如果可能的话我会坚持使用库函数 Cheers 现在我这样做 我分配 a1 a2 r 矩阵 所有 3x3 眼睛 我用变换矩阵 a1aff a2aff 替换前两个矩阵的顶部部分
  • parseInt 与 unary plus,何时使用哪个?

    这条线有什么区别 var a parseInt 1 10 a 1 和这条线 var a 1 a 1 This jsperf测试 http jsperf com parseint vs unary operator表明一元运算符在当前的 ch
  • 追加到Python字典中的列表[重复]

    这个问题在这里已经有答案了 有没有更优雅的方式来编写这段代码 我在做什么 我有钥匙和日期 可以有多个日期分配给一个键 因此我正在创建一个日期列表字典来表示它 下面的代码工作正常 但我希望有一个更优雅和 Pythonic 的方法 dates
  • 如何使用 setLocalNightMode() 在每个活动中启用 MODE_NIGHT_YES?

    我最近想创建一个设置 在我的 Android 应用程序中启用夜间模式 我在互联网上搜索并找到了一个很好的解决方案 其中包含 AppCompatDelegate 的 DayNight 主题和一个简短的代码片段 if settingsShare
  • 如何在 C++ 中使用 cin 隐藏用户输入? [复制]

    这个问题在这里已经有答案了 可能的重复 从 std cin 读取密码 https stackoverflow com questions 1413445 read a password from stdcin 我正在尝试制作一个简单的密码程
  • 在 Azure AD B2C 中,ACR 或 TFP 声明是否应该具有策略名称?

    根据这个文档 https learn microsoft com en us azure active directory b2c active directory b2c reference tokens the Policy Name应
  • FluentNHibernate - 自动映射忽略属性

    我有一个基类 其中包含一个名为 IsDirty 的属性 它用于域模型 不是数据库表中的列 当使用自动映射时 Fluent nhibernate 尝试将此列添加到表中 解决这个问题的一种方法是把 ForTypesThatDeriveFrom
  • Flutter:如何更新单个列表项的 ValueNotifier

    我有一个列表生成器 用于创建包含内容的卡片 在这张卡中 我有一个按钮和文本小部件 基本上 我想在按下按钮时更新文本小部件 我尝试使用 ValueNotifier 并且它有效 但它会更新每个列表项的值 这是主要功能 我创建了 ValueNot
  • HTTP 范围:使用 WebClient C# 的字节

    我正在尝试恢复文件下载 我使用下面的代码成功下载了我需要的文件 downlaodfile new WebClient downlaodfile Headers Add Range bytes 0 600000 downlaodfile Do
  • DOCTYPE 的选择是否会影响 javascript 代码所看到的 DOM?

    鉴于一个利用 ASP NET javascript css 等技术的大型遗留项目 我想知道是否以任何方式更改网页的 DOCTYPE 例如从 HTML 4 0 Transitional 到 XHTML 1 0 Transitional 或其他
  • 如何将多列乘以另一列pandas

    我有一个 100 列的数据框 我想将一列 计数 值与范围从 6 到 74 的列位置相乘 请告诉我该怎么做 我已经试了 df df ix 0 6 74 multiply df Count axis index df df df columns
  • Django:Bootstrap CDN 或从本地服务器加载 Bootstrap 文件?

    我正在尝试制作我的第一个网站 我正在使用 Django 我有一个与 Bootstrap 中包含 css js 相关的问题 安装它和使用链接它有什么区别BootstrapCDN 如果该链接无法再访问会发生什么 会影响网站吗 我不能将这些文件包
  • Javascript,固定一位小数,除了为 0 时

    我需要将小数点后的数字固定为小数点后一位 所以我尝试了以下方法 const convert numberWithDecimal gt numberWithDecimal toFixed 1 replace replace d d 3 d g
  • 如何从spring资源获取文件

    我有一个资源对象 org springframework core io ClassPathResource 我需要获取 File 对象 但是resource getFile 抛出异常文件未找到 但调用后resource getURI 我有
  • DbMigrator - 详细的代码优先迁移

    使用包管理器控制台时 您可以运行以下命令 PM gt Update Database Verbose The Verboseswitch 会将所有尝试的 SQL 命令写入控制台窗口 这对于调试非常有用 您可以使用DbMigrator类在代码
  • 无法将图像传递给另一个类

    我正在尝试将图像传递给另一个类intent but 它只适用于captured image 不是为了image selected from gallery 这是相机功能开始的地方 ImageFitScreen java 它有一个ok用于返回
  • 浏览器渲染和 JavaScript 执行的同步/异步性质

    我有一些处理需要花费几秒钟 所以我想在处理过程中添加一个视觉指示器 processing background color ff0000 div Processing div Script mydiv addClass processing
  • Skobbler SDK Android - SKNavigationState 对象损坏/不一致

    我们确实遇到了 SKNavigationState 更新与 Android 的一些不一致问题 有时 我们在开始导航后会得到不一致的 SKNavigationState 对象 因此导航停止工作 奇怪的是 有时它确实有效 首先 我们怀疑某些构建