HAL层修改
- 修改的是Gnss1.0
修改IGnss.hal
``
injectExtNmea(GnssUtcTime timestamp, string nmeaString) generates (bool success);
``
修改Gnss.h头文件
``
Return<bool> injectExtNmea(int64_t timestamp, const hidl_string& nmeaString) override;
``
修改Gnss.cpp 文件
- 重写增加了injectExtNmea函数
``
Return<bool> Gnss::injectExtNmea(int64_t timestamp, const hidl_string& nmeaString) {
}
``
- 这里注意HIDL对应和参数类型
然后单独编译Gnss 模块
mmm hardware/interfaces/gnss/1.0/Gnss.cpp
-
会生成对应的Gnss so库和在out out\target\common\obj\JAVA_LIBRARIES 生成jar 调用的 class jar 文件
-
hardware/current.txt 文件中添加编译完成功后的Gnss的Hash值
-
更新新的HAL库信息
development/vndk/tools/header-checker/utils/create_reference_dumps.py -l android.hardware.gnss@1.1 -products 编译的productId
-
然后再FW或者应用层通过 getService 调用获取Gnss java对象
Gnss gnss = android.hardware.gnss.V1_0.IGnss.getService(true);
拿到了Gnss对象之后就可以调用对应的方法了