RK3566 android12 虚拟GPS定位实现

RK3566 android12 虚拟GPS定位实现

一. 系统增加gps服务

--- a/hardware/interfaces/compatibility_matrices/compatibility_matrix.6.xml
+++ b/hardware/interfaces/compatibility_matrices/compatibility_matrix.6.xml
@@ -225,6 +225,7 @@
     </hal>
     <hal format="hidl" optional="true">
         <name>android.hardware.gnss</name>
+       <version>1.0</version>
         <version>2.0-1</version>
         <interface>
             <name>IGnss</name>
<manifest version="1.0" type="device">
        <hal format="hidl">
                <name>android.hardware.gnss</name>
                <transport>hwbinder</transport>
                <version>1.0</version>
                <interface>
                        <name>IGnss</name>
                        <instance>default</instance>
                </interface>
        </hal>
</manifest>
BOARD_HAS_GPS := true
ifeq ($(BOARD_HAS_GPS),true)
PRODUCT_COPY_FILES += \
    frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml
endif

二.移植TD-GNSS-HAL补丁

三.修改TD-GNSS-HAL上报流程
tdgnss.c
nmea_reader_parse,从系统自定义属性中读取经纬度和南北极信息

char propbuf_latitude[PROPERTY_VALUE_MAX];
property_get("persist.gps.latitude", propbuf_latitude, "0");
char propbuf_longitude[PROPERTY_VALUE_MAX];
property_get("persist.gps.longitude", propbuf_longitude, "0");

char propbuf_latitudeHemi[PROPERTY_VALUE_MAX];
property_get("persist.gps.latitudeHemi",propbuf_latitudeHemi, "N");

char propbuf_longitudeHemi[PROPERTY_VALUE_MAX];
property_get("persist.gps.longitudeHemi",propbuf_longitudeHemi, "E");
r->sv_status.num_svs = 6;  //卫星数量
r->sv_status_changed = 1; //状态回调
r->sv_status.used_in_fix_mask |= (1 << (r->sv_status.num_svs));
r->fix.accuracy = 8.0;  //精度
r->fix.timestamp = 1685782786; //时间戳
r->fix.latitude = strtod(propbuf_latitude,NULL);
r->fix.longitude = strtod(propbuf_longitude,NULL);
r->fix.flags    |= GPS_LOCATION_HAS_LAT_LONG;
r->fix.flags   |= GPS_LOCATION_HAS_ACCURACY;
D("lat : %f  lon : %f ",  r->fix.latitude, r->fix.longitude);

实测第三方任意定位软件均可使用

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤奋的蒙古大汗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值