目录
2.2.3 data_conn_open_with_apn_ip_type函数
1. 概述
基于Android的代码,辅助定位有两种,分别为AGPS和XTRA。
AGPS即辅助全球卫星定位系统(英语:Assisted Global Positioning System,简称:AGPS)指的是一种GPS的运行方式。它可以利用手机基地站的资讯,配合传统GPS卫星,让定位的速度更快。
XTRA是高通提供的一个可以下发星历信息的解决法案,类似AGPS。 都是辅助定位用的。
2. AGPS框架分析
2.1框架流程
AGPS要处理相关逻辑之前,需要确认GPS提供者是否支持AGPS,流程图如下:
首先在JAVA层GPS服务启来后,会通过JNI方式调用C层GPS接口,接者C层再向GPS提供者获取是否支持AGPS,如果支持,就获取AGPS的相关句柄,其实就是接口。
2.2接口说明
AGps的相关接口见如下图。
接口的调用逻辑是先gps库实现AgpsInterface的接口,JNI层获取到这个接口后,然后再调用init函数把回调函数给到gps库回调。其他函数由JNI层按相关逻辑调用。
接口调用逻辑如下:
2.2.1 init函数指针
1)函数说明
描述 |
用于初始化回调函数,当底层有信息上报时,gps库会调用此回调函数上报给上层 |
||
函数原型 |
void (*init)(AGpsCallbacks* callbacks); |
||
参数说明 |
callbacks |
agps_status_callback |
上报AGPS状态 |
gps_create_thread |
回调线程 |
||
返回值 |
void |
||
说明 |
2)AGpsCallbacks结构体
3)调用逻辑
4)agps_