Skip to content

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

1
fun onMessageUpdated(message: List<EHMessage>)
  • EHMessage.dataLong,表示一帧 64-bit EH 消息。
  • SDK 不对业务语义做二次解释;你可以接入自己的 ADASIS 解码器。

2) 反馈回调:onLocationFeedback

1
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()