{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508917603,"data":{"id":71712304,"title":"9.3.3 设置项","slug":"onrkc3","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"
int com.autonavi.gbl.user.behavior.BehaviorService.getConfig(ConfigKey, ConfigValue)
int com.autonavi.gbl.user.behavior.BehaviorService.setConfig(ConfigKey, ConfigValue, SyncMode)void com.autonavi.gbl.user.behavior.observer.IBehaviorServiceObserver.notify(SyncEventType, SyncRet)
说明:函数详情,请复制函数名称到在线API搜索
public class BehaviorPresenter implements IBehaviorServiceObserver {\n private BehaviorService mBehaviorService;\n \n private static class BehaviorManagerHolder {\n private static BehaviorPresenter mInstance = new BehaviorPresenter();\n }\n \n public static BehaviorPresenter getInstance() {\n return BehaviorManagerHolder.mInstance;\n }\n \n /** 同步事件回调\n */\n @Override\n public void notify(@SyncEventType.SyncEventType1 int eventType, @SyncRet.SyncRet1 int exCode) {\n Message msg = mMessenger.newMessage(AutoConstant.HANDLER_BEHAVIOR_SDK);\n Bundle bundle = new Bundle();\n bundle.putInt("type", eventType);\n bundle.putInt("code", exCode);\n msg.setData(bundle);\n mMessenger.sendMessage(msg);\n }\n \n // 设置配置信息\n @ErrorCode.ErrorCode1\n public int setConfig(@ConfigKey.ConfigKey1 int key, ConfigValue value, @SyncMode.SyncMode1 int mode) {\n if (mBehaviorService != null) {\n return mBehaviorService.setConfig(key, value, mode);\n }\n return AutoConstant.DEFAULT_ERR_CODE;\n }\n \n\t// 获取配置项\n public ConfigValue getConfig(int key) {\n if (mBehaviorService != null) {\n return mBehaviorService.getConfig(key);\n }\n return null;\n }\n}\n\nBehaviorPresenter behaviorPresenter = BehaviorPresenter.getInstance();\n\n// 获取配置项(以播报模式为例)\nConfigValue cast_value = behaviorPresenter.getConfig(ConfigKey.ConfigKeyBroadcastMode);\nif (cast_value != null) {\n // 这里 1,2 仅表示播报模式,具体含义由业务方自己定义\n if (cast_value.intValue == 1) {\n ...\n } else if (cast_value.intValue == 2) {\n ...\n }\n} else {\n ...\n}\n\n// 设置配置项(播报模式为例)\nint mode = SyncMode.SyncModeNow;\nConfigValue cast_simple = new ConfigValue();\ncast_simple.intValue = 1;\nint ret = behaviorPresenter.setConfig(ConfigKey.ConfigKeyBroadcastMode, cast_simple, mode);
同步库车机配置项, 301子项(用来保存当前车机的算路偏好),同步库保存使用的是"|"组合模式,业务方从同步获取值后要做一个映射为 RouteStrategy 调用算路参数设置接口生效。
映射关系如下:
序号 | 算路策略 | 同步库值 | 策略配置 |
1 | 高德推荐 | "0" | setRouteStrategy(RouteStrategyGaodeBest) setConstrainCode(RouteCalcMulti | RouteNetWorking) |
2 | 躲避拥堵 | "2" | setRouteStrategy(RequestRouteTypeTMC) setConstrainCode(RouteCalcMulti | RouteNetWorking) |
3 | 避免收费 | "4" | setRouteStrategy(RequestRouteTypeMoney) setConstrainCode(RouteCalcMulti | RouteNetWorking) |
4 | 不走高速 | "8" | setRouteStrategy(RequestRouteTypeBest) setConstrainCode(RouteCalcMulti | RouteAvoidFreeway | RouteNetWorking) |
5 | 高速优先 | "16" | setRouteStrategy(RequestRouteTypeBest) setConstrainCode(RouteCalcMulti | RouteFreewayStrategy | RouteNetWorking) |
6 | 速度最快 | "32" | setRouteStrategy(RouteStrategyPersonalSpeedFirst) setConstrainCode(RouteCalcMulti | RouteNetWorking) |
7 | 大路优先 | "64" | setRouteStrategy(RouteStrategyPersonalWidthFirst) setConstrainCode(RouteCalcMulti | RouteNetWorking) |
8 | 躲避拥堵+ 避免收费 | "2|4" | setRouteStrategy(RequestRouteTypeTMCFree) setConstrainCode(RouteCalcMulti | RouteNetWorking) |
9 | 躲避拥堵+ 不走高速 | "2|8" | setRouteStrategy(RequestRouteTypeTMC) setConstrainCode(RouteCalcMulti | RouteAvoidFreeway | RouteNetWorking) |
10 | 躲避拥堵+ 高速优先 | "2|16" | setRouteStrategy(RequestRouteTypeTMC) setConstrainCode(RouteCalcMulti | RouteFreewayStrategy | RouteNetWorking) |
11 | 避免收费+ 不走高速 | "4|8" | setRouteStrategy(RequestRouteTypeMoney) setConstrainCode(RouteCalcMulti | RouteAvoidFreeway | RouteNetWorking) |
12 | 躲避拥堵+ 避免收费+ 不走高速 | "2|4|8" | setRouteStrategy(RequestRouteTypeTMCFree) setConstrainCode(RouteCalcMulti | RouteAvoidFreeway | RouteNetWorking) |
13 | 躲避拥堵+ 速度最快 | "2|32" | setRouteStrategy(RouteStrategyPersonalTMC2SpeedFirst) setConstrainCode(RouteCalcMulti | RouteNetWorking) |
14 | 躲避拥堵+ 大路优先 | "2|64" | setRouteStrategy(RouteStrategyPersonalTMC2WidthFirst) setConstrainCode(RouteCalcMulti | RouteNetWorking) |