EH消息服务
功能介绍
EHMessageService 输出 EH 二进制消息流与定位反馈,适合 ADASIS 风格链路。
onMessageUpdated(List<EHMessage>):原始 64-bit 消息
onLocationFeedback(EHLocationFeedback):定位反馈(DR 校准常用)
接口定义见 com.telenav.sdk.ehservice.api.EHMessageService。
核心接口
| 接口 |
说明 |
EHService.Factory.createEHMessageService(options) |
创建消息服务实例 |
addEHMessageListener(listener) |
注册消息监听 |
addEHLocationListener(listener) |
注册反馈监听 |
removeEHMessageListener(listener) / removeEHLocationListener(listener) |
解绑监听 |
dispose() |
释放服务 |
回调说明
1) 消息回调:onMessageUpdated
| fun onMessageUpdated(message: List<EHMessage>)
|
EHMessage.data 是 Long,表示一帧 64-bit EH 消息。
- SDK 不对业务语义做二次解释;你可以接入自己的 ADASIS 解码器。
2) 反馈回调:onLocationFeedback
| fun onLocationFeedback(feedback: EHLocationFeedback)
|
常见字段:
| 字段 |
说明 |
elapsedTime |
系统启动后毫秒,用于与原始输入定位对齐 |
coordinate |
反馈坐标 |
bearing / speed |
航向与速度 |
offRoad / inTunnel |
离路与隧道状态 |
confidence / probability |
置信度与概率 |
EHLocationFeedback 主要用于定位校准场景。
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | val ehMessageService = EHService.Factory.createEHMessageService(
EHServiceOption.Builder()
.setMainPathLength(4000)
.setPositionMessagePeriod(1000)
.build()
)
val messageListener = EHMessageListener { messages ->
messages.forEach { msg ->
handleEhRawMessage(msg.data)
}
}
val locationListener = EHLocationListener { feedback ->
handleEhLocationFeedback(feedback)
}
ehMessageService.addEHMessageListener(messageListener)
ehMessageService.addEHLocationListener(locationListener)
|
注意事项
setPositionMessagePeriod(...) 对消息服务更关键;取值建议遵循 Builder 注释范围(100~1000 ms)。
- 监听器回调频率可能较高,建议避免在回调内做重计算或阻塞 I/O。
- 页面退出时记得解绑监听并
dispose()。