{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508892809,"data":{"id":71712873,"title":"8.2.3 初始化 & 反初始化","slug":"bx6fwb","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"

时序图

     服务管理初始化

检测云端城市数据列表

检测U盘城市数据列表

关键参数

com.autonavi.gbl.data.observer.IDataDeletionObserver

AutoSDK 删除本地异常离线地图数据前后,会通过异常数据删除回调观察者通知HMI,HMI可以在回调实现中处理相关事宜,比如:删除前增加删除权限,删除后回收删除权限。

注意:如项目不需要监控数据删除可以忽略异常数据删除回调观察者。


com.autonavi.gbl.data.observer.IDataInitObserver

获取城市数据信息以及下载/更新城市数据必须等待初始化观察者回调后才能继续操作。


com.autonavi.gbl.data.model.InitConfig.strConfigfilePath

配置文件路径 InitConfig.strConfigfilePath下,调用者必须提前放置配置文件:all_city_compile.json。

注意:

1、请不要编辑修改 all_city_compile.json 文件,否则,可能会导致初始化失败。

2、建议不要删除或者重置strConfigfilePath中的目录,避免损坏车机配置环境导致不必要的异常。


ArrayList<DataInitParam> com.autonavi.gbl.data.model.InitConfig.extendedParamList

String com.autonavi.gbl.data.model.DataInitParam.strName

String com.autonavi.gbl.data.model.DataInitParam.strValue

参数名称

参数值

说明

check_local_version

"0" 

将关闭初始化时检测本地数据版本功能,默认开启,建议开启

其他值

开启初始化时检测本地数据版本功能

custom_usb

"1"

BL初始化时需将离线数据路径 com.autonavi.gbl.servicemanager.model.ServiceDataPath.offlinePath 指定为U盘,此时车机使用的离线数据是U盘中的数据。 com.autonavi.gbl.data.model.InitConfig.strStoredPath 生效,设置为车机本地离线数据路径,该方案将U盘离线数据直接更新到 com.autonavi.gbl.data.model.InitConfig.strStoredPath 指定路径下。

"2"

com.autonavi.gbl.data.model.InitConfig.strStoredPath 生效,指定U盘更新时,离线数据临时存放路径,该方案将U盘离线数据直接更新到strStoredPath指定路径下,而不是车机本地离线数据路径。更新完成后,可以在下次启动时,在 ServiceMgr.InitBaseLibs() 接口调用后,开始使用离线数据前,使用com.autonavi.gbl.data.DataToolMapData.cityDataShift() 接口将临时路径下的离线数据替换到车机离线数据路径下

核心接口

设置/删除引擎删除数据监听观察者。

注意:如项目不需要监控数据删除可以忽略这两个接口


注意1:执行 ServiceMgr.unInitBL 反初始化 AutoSDK 后,调用者才可以销毁pObserver指向的实例对象。

注意2:使用U盘下载/更新时没有初始化回调,可以直接根据返回值判断是否初始化成功。



说明:函数详情,请复制函数名称到在线API搜索


调用示例

class ErrorDataObserver implements IErrorDataObserver {\n    // \t数据异常通知\n\tpublic void onErrorNotify (@DownLoadMode.DownLoadMode1 int downLoadMode, @DataType.DataType1 int dataType, \n                               int id, @DataErrorType.DataErrorType1 int errType, String errMsg){\n\t\trunOnUiThread(new Runnable() {\n\t\t\t@Override\n\t\t\tpublic void run() {\n                // 前端提示:城市数据异常\n                log.e(TAG, "adcode="+id+", errortype="+errType+", message="+errMsg);\n                \n                // 删除异常城市数据\n                MapDataService mapDataService = ServiceMgr.getBLService(SingleServiceID.MapDataSingleServiceID);\n                mapDataService.deleteErrorData(id);\n\t\t\t}\n\t\t});\n\t}\n    \n    // 异常数据清除回调通知\n\tpublic void onDeleteErrorData (@DownLoadMode.DownLoadMode1 int downLoadMode, @DataType.DataType1 int dataType, \n                                   int id, int opCode){\n\t\trunOnUiThread(new Runnable() {\n\t\t\t@Override\n\t\t\tpublic void run() {\n\t\t\t\tlog.i(TAG, "adcode="+id+"opErrCode="+opCode);\n\t\t\t}\n\t\t});\n\t}\n}
class EHPDataObserver implements IEHPDataObserver {\n    // 存在EHP数据的adcode列表回调\n\tpublic void onEHPDataExistedAdcodeList (@DownLoadMode.DownLoadMode1 int downloadMode, \n                                            ArrayList< Integer > adcodeLstExisted, \n                                            ArrayList< Integer > adcodeLstNotExisted) {\n\t\trunOnUiThread(new Runnable() {\n\t\t\t@Override\n\t\t\tpublic void run() {\n                for (Integer adcode : adcodeLstExisted)\n                {\n                \tLog.i(TAG, "exit adcode: " + adcode);\n                }\n                \n                for (Integer adcode : adcodeLstNotExisted)\n                {\n                \tLog.i(TAG, "not exit adcode: " + adcode);\n                }\n\t\t\t}\n\t\t});\n\t}\n}
class DataInitObserver implements IDataInitObserver {\n    public void onInit(@DownLoadMode.DownLoadMode1 int downLoadMode, @DataType.DataType1 int dataType,\n                        int opCode) {\n        if (opCode == OperationErrCode.OPERATION_ERR_CODE_CORRECT){\n            // 转UI线程处理回调\n            runOnUiThread(new Runnable() {\n                @Override\n                public void run() {\n                    // 设置EHP数据更新操作观察者\n                    MapDataService mMapDataService = ServiceMgr.getBLService(SingleServiceID.MapDataSingleServiceID);\n                    EHPDataObserver ehpDataObserver = new EHPDataObserver();\n                    mMapDataService.setEHPDataObserver(ehpDataObserver);                \n\n                    // 示例代码:上层自定义函数用于初始化离线数据视图\n                    initView();\n                    // 示例代码:上层自定义函数用于初始化城市数据项信息,城市数据项信息获取在《获取云端城市数据信息》文档中介绍\n                    initCityData();\n\n                    if (OPERATION_ERR_CODE_CORRECT == opCode){\n                        // 检测云端城市数据列表,在《检测云端城市数据列表》文档中介绍\n                        // mMapDataService.requestDataListCheck(DownLoadMode.DOWNLOAD_MODE_NET, "", IDataListObserver);\n                    }\n                }\n            });\n        }\n        else{\n            // 设置初始化失败标志,操作其他接口时判断是否初始化成功,不成功则不调用相关接口。\n        }\n    }\n}
InitConfig config = new InitConfig();\n\n// 离线数据存储路径传空"",实际设置在 ServiceMgr.initBL 接口设置\nconfig.strStoredPath = "";\n\n// all_city_compile.json 配置文件所存放的目录\nconfig.strConfigfilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/amapauto20/";\n\n// 设置磁盘空间安全阈值(默认设置为80MB)\nconfig.nThresholdValue = 80;\n\n// 开启数字签名功能\nboolean bPiviFun = getPiviFun();\nif (bPiviFun)\n{\n\tconfig.strPiviFlag = "1";\n    config.strPiviVersion = "1";\n}\n\n// 设置地图数据模式\nconfig.mapDataMode = MapDataMode.MAP_DATA_MODE_BASE;\t// 默认为:基础地图数据模式\n\n// 是否开启EHP:智能辅助驾驶数据参数\nboolean bEnableEHP = getEnableEHP();\nboolean bEnableEHPData = getEnableEHPData();\nif (bEnableEHP && bEnableEHPData)\n{\n    // 修改地图数据模式\n\tconfig.mapDataMode = getEHPDataMode(); // 客户端自己实现是 MapDataMode.MAP_DATA_MODE_EHP_ADAS 或 MapDataMode.MAP_DATA_MODE_EHP_ADAS_LANE\n}\n\n// 是否遍历本地离线数据\nDataInitParam param = new DataInitParam();\nboolean isNeedReadOfflineData = getIsNeedReadOfflineData();\t// 客户端自己实现是否开启,注意:该开关会读取所有离线地图数据,可能影响性能。\nparam.strName = "check_local_version";\nif (isNeedReadOfflineData)\n{\n\tparam.strValue = "1";\t// 0为关闭;非0为开启\n}\nelse\n{\n\tparam.strValue = "0";\n}\nconfig.extendedParamList.add(param);
protected void onCreate(@Nullable Bundle savedInstanceState) {\n    MapDataService mapDataService = ServiceMgr.getBLService(SingleServiceID.MapDataSingleServiceID);\n   \n    // 初始化离线地图数据服务\n    int ret = mapDataService.init(config, dataInitObserver);\n    if (ret == 1)\n    {\n        Log.i(TAG, "init result: " + ret);\t\n        // ...\n        // 如使用U盘下载更新功能,可直接发起检测U盘城市数据列表,在《检测U盘城市数据列表》文档中介绍\n        // mapDataService.requestDataListCheck(DownLoadMode.DOWNLOAD_MODE_USB, "/sdcard/USBData/", IDataListObserver);\n    }\n    \n    // 添加离线地图数据异常观察者\n    ErrorDataObserver errorDataObserver = new ErrorDataObserver();\n    mapDataService.setErrorDataObserver(errorDataObserver);\n\n    // 添加城市数据下载观察者,城市数据下载观察者在《下载/更新云端城市数据》文档中介绍\n    // mapDataService.addNetDownloadObserver(DownloadObserver);\n}
MapDataService mapDataService = ServiceMgr.getBLService(SingleServiceID.MapDataSingleServiceID);\nmapDataService.unInit();


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