Android GNSS 模块分析(四)HAL 层

        紧接着上一篇(Android GNSS 模块分析(三)JNI 层),继续来分析下 Android GNSS HAL 层的功能,本篇准备先介绍下 HIDL 层的封装。至于后面的 HAL 层的功能,由于使用的厂商 Hal 实现,这里先不描述。后续可能更新(或者可以按照原生的先看看)。

下面的整理基于 GNSS HIDL 1.0 的分析

IGnss.hal

Hidl 接口 功能描述 参数 返回值
setCallback(IGnssCallback callback) 给 IGnss 服务添加回调,回调对象是 IGnssCallback IGnssCallback bool
start() 启动定位服务,使用 IGnssCallbck 的 gnssLocationCb() 的回调方法通知上层。定位服务的设置从 setPositionMode() 接口传下来 bool
stop() 停止定位服务,停止 gnssLocationCb() 回调方法提供定位服务 bool
cleanup() 关闭 芯片GNSS 服务,此时芯片可以选择掉电以节省电力
injectTime(GnssUtcTime timeMs, int64_t timeReferenceMs, int32_t uncertaintyMs) 注入当前时间 GnssUtcTime、int64_t、int32_t bool
injectLocation(double latitudeDegrees, double longitudeDegrees, float accuracyMeters) 从另一个 location provider 中注入 location 到 Hal 层 double、double、float bool
deleteAidingData(GnssAidingData aidingDataFlags) 指定要启动的下一个调用将不使用标志中定义的信息 GnssAidingData
setPositionMode(GnssPositionMode mode, GnssPositionRecurrence recurrence, uint32_t minIntervalMs, uint32_t preferredAccuracyMeters, uint32_t preferredTimeMs) 设置gnspositionmode参数、其关联的递归值、修复之间的时间、请求的修复精度和首次修复的时间 GnssPositionMode、GnssPositionRecurrence、uint32_t、uint32_t、uint32_t bool
getExtensionAGnssRil() 这个方法返回 IAGnssRil 接口 IAGnssRil
getExtensionGnssGeofencing() 这个方法返回 IGnssGeofencing 接口 IGnssGeofencing
getExtensionAGnss() 这个方法返回 IAGnss 接口 IAGnss
getExtensionGnssNi() 这个方法返回 IGnssNi 接口 IGnssNi
getExtensionGnssMeasurement() 这个方法返回 IGnssMeasurement 接口 IGnssMeasurement
getExtensionGnssNavigationMessage() 这个方法返回 IGnssNavigationMessage 接口 IGnssNavigationMessage
getExtensionXtra() 这个方法返回 IGnssXtra 接口 IGnssXtra
getExtensionGnssConfiguration() 这个方法返回 IGnssConfiguration 接口 IGnssConfiguration
getExtensionGnssDebug() 这个方法返回 IGnssDebug 接口 IGnssDebug
getExtensionGnssBatching() 这个方法返回 IGnssBatching 接口 IGnssBatching

IGnssCallback.hal

Hidl 接口 功能描述 参数 返回值
gnssLocationCb(GnssLocation location) 通过此回调接口通知上层 Location 位置信息。以 GnssLocation 结构对象返回。其中数据包括:纬度、经度、高度、速度、航向、预期的水平位置精度、预期的垂直位置精度、预期速度精度、预期轴承精度、时间戳 GnssLocation
gnssStatusCb(GnssStatusValue status) 调用该函数以通知GNSS底层服务的状态。 GnssStatusValue
gnssSvStatusCb(GnssSvStatus svInfo) 调用该函数以通知GNSS可见卫星状态 GnssSvStatus
gnssNmeaCb(GnssUtcTime timestamp, string nmea) 调用该函数以通知上层NMEA语句 GnssUtcTime、string
gnssSetCapabilitesCb(bitfield<Capabilities> capabilities) 回调函数通知上层GNSS引擎的功能。@param capabilities能力参数是Capability枚举的位字段 bitfield<Capabilities> capabilities)
gnssAcquireWakelockCb() 用于获取GNSS wakelock的回调实用程序。这可以用来防止CPU在处理GNSS事件时挂起。
gnssReleaseWakelockCb() 用于释放GNSS wakelock的回调实用程序。
gnssRequestTimeCb() 请求NTP时间的回调
gnssSetSystemInfoCb(Gnss
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值