先说一下GPS和GNSS的区别, 很多人把GPS等同于GNSS,我们在生活和工作中也常以GPS的概念描述GNSS。其实不然。
GNSS全球导航卫星系统(Global Navigation Satellite System)。泛指所有的卫星导航系统,包括全球的、区域的和增强的导航系统,如美国的GPS、俄罗斯的Glonass、欧洲的Galileo、中国的北斗卫星导航系统,以及相关的增强系统,如美国的WAAS(广域增强系统)、欧洲的EGNOS(欧洲静地导航重叠系统)和日本的MSAS(多功能运输卫星增强系统)等,还涵盖在建和以后要建设的其他卫星导航系统。国际GNSS系统是个多系统、多层面、多模式的复杂组合系统。
用简洁的公式表述就是:
GNSS = 卫星导航系统(GPS+Glonass+Galileo+Beidou等)+ 区域增强/扩增系统(WAAS+EGNOS+MSAS+QZSS+SBAS等)+ ...
最近犹豫工作需要,需要写一个测试GNSS搜星能力的工具。
1. Qcom平台默认提供“garden_app”命令可测试GNSS。该命令需要root权限才可运行。
2. server call 调用LocationManager相关接口进行搜星,同时打开相关log,查看log中搜星信息。该方法遇到传参问题。
3. 写一个GNSS测试apk,可界面显示搜星信息,也可将搜星信息写进文件,供其它工具读取。
调用的关键类及方法:
LocationManager.requestLocationUpdates() //调用该接口发起搜星,需要定义接口所需参数,如LocationListener
GpsStatus, GpsStatus.Listener //通过该类获取卫星信息
GPS (1-32) / SBAS (33-54) / GLONASS (65-96) / QZSS (193-200) / BEIDOU (201-235) / GALILEO (301-) //android中定义的各个GNSS系统中卫星prn所属阈值。
代码如下:
package com.example.gpstest;
import