{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508894438,"data":{"id":71713001,"title":"8.2.8 常见问题","slug":"qielbc","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"

如何准备U盘升级数据包

  1. 官网,挑选xxx.zip数据包


2.下载xxx.zip数据包到U盘根路径


  1. 用解压软件解压到当前路径,在根路径下生成amapauto9/文件夹


4.U盘升级,传入给Auto SDK的路径即为解压后amapauto9/所在路径,通常为U盘根路径,将amapauto9目录拷贝到该路径即可。

检测云端数据列表设置的观察者回调没有执行

离线数据可能触发删除逻辑,触发删除场景

  1. 在线下载
    城市数据下载完成,覆盖城市数据文件夹内的文件,校验OK后,再删除临时文件夹的压缩包。
  2. 初始化
    遍历本地数据没有打开,如果有打开,仅删除临时文件夹的压缩包。
  3. 数据错误删除,删除城市文件夹a*(城市文件夹以a+城市urcode命名,例如北京:a1).
    a. 数据和引擎规格不匹配
    b. 数据错误:打开数据文件错误
    c. 数据错误:解析数据错误
    d. 数据错误:m2和m1数据版本不一致
  4. 用户主动删除城市数据。



第3点的情况下,引擎会回调通知HMI离线数据出现异常,回调观察者是:IErrorDataObserver。正常情况下引擎会主动删除异常文件,删除前后回调观察者 IDataDeletionObserver。但是有一点需要注意:当离线数据以手动的方式放入车机,且放入过程中发生数据损坏时,当车机启动后,引擎识别到数据损坏就不会生成对应的数据记录,这种情况下,一旦使用到损坏的数据时,引擎会回调通知HMI离线数据出现异常但不会删除损坏的离线数据,需要HMI自己根据 IErrorDataObserver 回调的信息找到损坏的离线数据并删除。

删除“有更新”的数据,未返回下载状态变化回调,数据无法刷新

AutoSDK侧检测到数据状态没有变更或者无错误发生不会透出回调:IDownloadObserver::OnDownLoadStatus。

待更新城市数据的信息为:TaskStatusCode=0,bIsDataUsed=1,bUpdate=1,此时如果待更新数据被删除,其状态 TaskStatusCode 无变更,此时城市数据信息为:TaskStatusCode=0,bIsDataUsed=0,bUpdate=0,同时也没有错误发生,所以AutoSDK不对外透出回调:IDownloadObserver::OnDownLoadStatus。但,由于是上层触发的删除操作,会有 IDownloadObserver::OnOperated 回调透出,建议上层在收到IDownloadObserver::OnOperated回调后进行相关前端更新操作。


由上层实现的回调接口是否需要转线程处理

数据服务所有回调理论上都应该放到上层自己的线程处理,否则会阻塞Auto SDK线程。

","body_lake":null,"pub_level":null,"status":"0","updated_at":"2022-04-06 07:05:13","deleted_at":null,"nameSpace":"mnlcaa/v610","browseCount":91,"collectCount":0,"estimateDate":3,"docStatus":0,"permissions":true,"overView":false}}