GNSS–全球卫星导航系统
SBAS——星基增强系统
NAVSTAR -全球定位系统(美国)
GALILEO_伽利略定位系统(欧盟)
QZSS_准天顶卫星系统(日本)
BEIDOU-北斗卫星导航系统(中国)
GLONASS——格洛纳斯系统(俄罗斯)
IRNSS——印度区域导航系统

github里的部分代码

public class SatelliteUtils {private static final String TAG = "SatelliteUtils";/*** Returns the Global Navigation Satellite System (GNSS) for a satellite given the PRN.  For* Android 6.0.1 (API Level 23) and lower.  Android 7.0 and higher should use getGnssConstellationType()** @param prn PRN value provided by the GpsSatellite.getPrn() method* @return GnssType for the given PRN*/@Deprecatedpublic static GnssType getGnssType(int prn) {if (prn >= 1 && prn <= 32) {return NAVSTAR;} else if (prn == 33) {return SBAS;} else if (prn == 39) {// See Issue #205return SBAS;} else if (prn >= 40 && prn <= 41) {// See Issue #92return SBAS;} else if (prn == 46) {return SBAS;} else if (prn == 48) {return SBAS;} else if (prn == 49) {return SBAS;} else if (prn == 51) {return SBAS;} else if (prn >= 65 && prn <= 96) {// See Issue #26 for detailsreturn GLONASS;} else if (prn >= 193 && prn <= 200) {// See Issue #54 for detailsreturn QZSS;} else if (prn >= 201 && prn <= 235) {// See Issue #54 for detailsreturn BEIDOU;} else if (prn >= 301 && prn <= 336) {return GALILEO;} else {return UNKNOWN;}}/*** Returns the Global Navigation Satellite System (GNSS) for a satellite given the GnssStatus* constellation type.  For Android 7.0 and higher.  This is basically a translation to our* own GnssType enumeration that we use for Android 6.0.1 and lower.  Note that* getSbasConstellationType() should be used to get the particular SBAS constellation type** @param gnssConstellationType constellation type provided by the GnssStatus.getConstellationType()*                              method* @return GnssType for the given GnssStatus constellation type*/@RequiresApi(api = Build.VERSION_CODES.N)public static GnssType getGnssConstellationType(int gnssConstellationType) {switch (gnssConstellationType) {case GnssStatus.CONSTELLATION_GPS:return NAVSTAR;case GnssStatus.CONSTELLATION_GLONASS:return GLONASS;case GnssStatus.CONSTELLATION_BEIDOU:return BEIDOU;case GnssStatus.CONSTELLATION_QZSS:return QZSS;case GnssStatus.CONSTELLATION_GALILEO:return GALILEO;case GnssStatus.CONSTELLATION_IRNSS:return IRNSS;case GnssStatus.CONSTELLATION_SBAS:return SBAS;case GnssStatus.CONSTELLATION_UNKNOWN:return UNKNOWN;default:return UNKNOWN;}}/*** Returns the SBAS constellation type for a GnssStatus.CONSTELLATION_SBAS satellite given the GnssStatus* svid.  For Android 7.0 and higher.** @param svid identification number provided by the GnssStatus.getSvid() method* @return SbasType for the given GnssStatus svid for GnssStatus.CONSTELLATION_SBAS satellites*/@RequiresApi(api = Build.VERSION_CODES.N)public static SbasType getSbasConstellationType(int svid) {if (svid == 120 || svid == 123 || svid == 126 || svid == 136) {return SbasType.EGNOS;} else if (svid == 125 || svid == 140 || svid == 141) {return SbasType.SDCM;} else if (svid == 130 || svid == 143 || svid == 144) {// Also referred to as BDSBASreturn SbasType.SNAS;} else if (svid == 131 || svid == 133 || svid == 135 || svid == 138) {return SbasType.WAAS;} else if (svid == 127 || svid == 128 || svid == 139) {return SbasType.GAGAN;} else if (svid == 129 || svid == 137) {return SbasType.MSAS;}return SbasType.UNKNOWN;}/*** Returns the SBAS constellation type for a satellite for Android 6.0.1 and lower** @param svid PRN provided by the GpsSatellite.getPrn() method method* @return SbasType for the given GpsSatellite.getPrn() method*/@SuppressLint("NewApi")@Deprecatedpublic static SbasType getSbasConstellationTypeLegacy(int svid) {return getSbasConstellationType(svid + 87);}/*** Returns the satellite name for a satellite given the constellation type and svid.  For* Android 7.0 and higher.** @param gnssType constellation type* @param svid identification number* @return SatelliteName for the given constellation type and svid*/@RequiresApi(api = Build.VERSION_CODES.N)public static SatelliteName getSatelliteName(GnssType gnssType, int svid) {// TODO - support more satellite namesswitch (gnssType) {case NAVSTAR:return SatelliteName.UNKNOWN;case GLONASS:return SatelliteName.UNKNOWN;case BEIDOU:return SatelliteName.UNKNOWN;case QZSS:return SatelliteName.UNKNOWN;case GALILEO:return SatelliteName.UNKNOWN;case IRNSS:return SatelliteName.UNKNOWN;case SBAS:if (svid == 120) {return SatelliteName.INMARSAT_3F2;} else if (svid == 123) {return SatelliteName.ASTRA_5B;} else if (svid == 126) {return SatelliteName.INMARSAT_3F5;} else if (svid == 131) {return SatelliteName.GEO5;} else if (svid == 133) {return SatelliteName.INMARSAT_4F3;} else if (svid == 135) {return SatelliteName.GALAXY_15;} else if (svid == 136) {return SatelliteName.SES_5;} else if (svid == 138) {return SatelliteName.ANIK;}return SatelliteName.UNKNOWN;case UNKNOWN:return SatelliteName.UNKNOWN;default:return SatelliteName.UNKNOWN;}}/*** Returns true if this device supports the Sensor.TYPE_ROTATION_VECTOR sensor, false if it* doesn't** @return true if this device supports the Sensor.TYPE_ROTATION_VECTOR sensor, false if it* doesn't*/public static boolean isRotationVectorSensorSupported(Context context) {SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);return sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR) != null;}/*** Returns true if the device supports the Gnss status listener, false if it does not** @return true if the device supports the Gnss status listener, false if it does not*/public static boolean isGnssStatusListenerSupported() {return Build.VERSION.SDK_INT >= Build.VERSION_CODES.N;}/*** Returns true if the platform supports providing carrier frequencies for each satellite, false if it does not** @return true if the platform supports providing carrier frequencies for each satellite, false if it does not*/public static boolean isGnssCarrierFrequenciesSupported() {return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O;}/*** Returns true if the platform supports providing vertical accuracy values and this location* has vertical accuracy information, false if it does not** @return true if the platform supports providing vertical accuracy values and this location*  has vertical accuracy information, false if it does not*/public static boolean isVerticalAccuracySupported(Location location) {return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && location.hasVerticalAccuracy();}/*** Returns true if the platform supports providing speed and bearing accuracy values, false if it does not** @return true if the platform supports providing speed and bearing accuracy values, false if it does not*/public static boolean isSpeedAndBearingAccuracySupported() {return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O;}/*** Returns true if automatic gain control is supported for this GNSS measurement, false if it is not* @param gnssMeasurement* @return true if automatic gain control is supported for this GNSS measurement, false if it is not*/public static boolean isAutomaticGainControlSupported(GnssMeasurement gnssMeasurement) {return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && gnssMeasurement.hasAutomaticGainControlLevelDb();}/*** Returns true if carrier phase is supported for this GNSS measurement, false if it is not* @param gnssMeasurement* @return true if carrier phase is supported for this GNSS measurement, false if it is not*/@RequiresApi(api = Build.VERSION_CODES.N)public static boolean isCarrierPhaseSupported(GnssMeasurement gnssMeasurement) {return isAccumulatedDeltaRangeStateValid(gnssMeasurement.getAccumulatedDeltaRangeState())&& gnssMeasurement.getAccumulatedDeltaRangeMeters() != 0.0d;}/*** Returns the result of the GnssMeasurement.ADR_STATE_VALID bitmask being applied to the* AccumulatedDeltaRangeState from a GnssMeasurement - true if the ADR state is valid,* false if it is not* @param accumulatedDeltaRangeState accumulatedDeltaRangeState from GnssMeasurement* @return the result of the GnssMeasurement.ADR_STATE_VALID bitmask being applied to the*      * AccumulatedDeltaRangeState of the given GnssMeasurement - true if the ADR state is valid,*      * false if it is not*/public static boolean isAccumulatedDeltaRangeStateValid(int accumulatedDeltaRangeState) {return (GnssMeasurement.ADR_STATE_VALID & accumulatedDeltaRangeState) == GnssMeasurement.ADR_STATE_VALID;}/*** Returns true if the platform supports the Android GnssAntennaInfo (https://developer.android.com/reference/android/location/GnssAntennaInfo.Listener)* , false if it does not* @return true if the platform supports the Android GnssAntennaInfo (https://developer.android.com/reference/android/location/GnssAntennaInfo.Listener)*      , false if it does not*/public static boolean isGnssAntennaInfoSupported(LocationManager manager) {if (manager == null) {return false;}if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {return manager.getGnssCapabilities().hasAntennaInfo();} else {return Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && manager.getGnssCapabilities().hasGnssAntennaInfo();}}/*** Returns true if "force full GNSS measurements" can be programmatically invoked, and false if not* @return true if "force full GNSS measurements" can be programmatically invoked, and false if not*/public static boolean isForceFullGnssMeasurementsSupported() {return Build.VERSION.SDK_INT >= Build.VERSION_CODES.S;}/*** Returns true if the platform supports GNSS measurements, false if it does not.* @return true if the platform supports GNSS measurements, false if it does not*/@RequiresApi(api = Build.VERSION_CODES.S)public static boolean isGnssMeasurementsSupported(LocationManager manager) {return manager != null && manager.getGnssCapabilities().hasMeasurements();}/*** Returns true if the platform supports navigation messsages, false if it does not.* @return true if the platform supports navigation messsages, false if it does not*/@RequiresApi(api = Build.VERSION_CODES.S)public static boolean isNavigationMessagesSupported(LocationManager manager) {return manager != null && manager.getGnssCapabilities().hasNavigationMessages();}/*** Creates a unique key to identify this satellite using a combination of both the svid and* constellation type** @return a unique key to identify this satellite using a combination of both the svid and* constellation type*/public static String createGnssSatelliteKey(SatelliteStatus status) {if (status.getGnssType() == SBAS) {return status.getSvid() + " " + status.getGnssType() + " " + status.getSbasType();} else {// GNSSreturn status.getSvid() + " " + status.getGnssType();}}/*** Creates a unique key to identify a particular signal, or GnssStatus, from a satellite using a* combination of both the svid and constellation type and carrier frequency** @return a unique key to identify a particular signal, or GnssStatus, from a satellite using a* combination of both the svid and constellation type and carrier frequency*/public static String createGnssStatusKey(SatelliteStatus status) {String carrierLabel = CarrierFreqUtils.getCarrierFrequencyLabel(status);if (status.getGnssType() == SBAS) {return status.getSvid() + " " + status.getGnssType() + " " + status.getSbasType() + " " + carrierLabel;} else {// GNSSreturn status.getSvid() + " " + status.getGnssType() + " " + carrierLabel;}}
}



源码下载地址
https://gitee.com/hyx_blank/gpstest

apk天翼云下载地址需扫码注册天翼账号
https://cloud.189.cn/t/A7JNnqF3EnEz

安卓gps北斗搜星源码和导航工具支持安卓12无广告相关推荐

  1. I9003的ROOT,偷天换日,GPS搜星,凯立德导航领路人导航201107更新

    一.破解权限: 首先电脑端准备的的软件是 1.i9003的驱动,用豌豆或91助手,官网kie,个人推荐豌豆方便快些 2.SuperOneClick软件,目前最新版本为1.7.文件帖子最下面有下载 玩机 ...

  2. 教你把gps服务器修改为中国加速搜星,Android的GPS加速搜星的原理和方法

    把默认的北美NTP_SERVER以及SUPL_HOST修改为中国区的,当然,亚洲区也行,只要是网速快的就行. Android系统GPS加速搜星的原理和方法,修改GPS定位服务器为中国的 本文来自网络, ...

  3. 2021最新4合1即时通讯IM源码-服务端+PC+WEB+安卓+IOS完整原生源码

    介绍: 20214合1即时通讯IM源码 服务端+PC+WEB+安卓+IOS完整原生源码 附完整开发文档+视频搭建教程. 注意:此源码亲测可用,他处有小问题,我们已经修复.任何源码,难免有瑕疵,但不影响 ...

  4. 梦幻诛仙linux纯端架设教程,梦幻诛仙 一键端搭建iOS安卓双端+完整后台源码+各种工具附带视频架设教程...

    游戏说明: 梦幻诛仙一键端搭建iOS安卓双端+完整后台源码+各种工具,视频架设教程 在游戏内当前聊天窗口输入  dmmhzxnb ,开启后台.  提示GM后台已开启. 在左上角Press Enter ...

  5. 【附源码】计算机毕业设计Python安卓基于安卓的校园跑腿代购476ww(源码+程序+LW+调试部署)

    [附源码]计算机毕业设计Python安卓基于安卓的校园跑腿代购476ww(源码+程序+LW+调试部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Python ...

  6. 【附源码】计算机毕业设计Python安卓“我爱厨房”APP5loq7(源码+程序+LW+调试部署)

    [附源码]计算机毕业设计Python安卓"我爱厨房"APP5loq7(源码+程序+LW+调试部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置 ...

  7. 【附源码】计算机毕业设计Python安卓基于安卓的豆果美食APPou9ez(源码+程序+LW+调试部署)

    [附源码]计算机毕业设计Python安卓基于安卓的豆果美食APPou9ez(源码+程序+LW+调试部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Pytho ...

  8. 安卓街机模拟器 MAME4droid 源码,只需要自己加入rom 可以发布到安卓市场了。

    安卓街机模拟器 MAME4droid 源码,只需要自己加入rom 可以发布到安卓市场了,可以开始自己的赚钱了.为了方便大家赚钱,apk展示的包含万普广告条,也就是只要自己去申请万普广告条,填一下app ...

  9. [附源码]计算机毕业设计Python+uniapp安卓门禁系统appo8yd7(程序+源码+LW+远程部署)

    [附源码]计算机毕业设计Python+uniapp安卓门禁系统appo8yd7(程序+源码+LW+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Pyt ...

最新文章

  1. MySQL 高频 100 问
  2. 解决Ubuntu14.04安装Chrome浏览器打不开的问题
  3. 软考-信息系统项目管理师-项目变更管理
  4. 【Java中级】(三)IO
  5. C# 3.0 扩展方法
  6. onmounted vue3_基于项目时间阐述vue3.0新型状态管理和逻辑复用方式
  7. java.util.Properties
  8. 150 Evaluate Reverse Polish
  9. 为什么重写equals时必须重写hashCode方法?
  10. 2011年想要惊喜的5z20
  11. 关于Java中 求Logn/log2 的精度问题。
  12. 在Ubuntu 18.04 LTS 入门 ROS Melodic 机器人 操作系统
  13. 小米虚高的估值泡沫要破了么?
  14. python 简单 socket 编程
  15. Flutter 自定义CheckBox (用于兴趣爱好、风格选择)
  16. 37--8位级联加法器,并行加法器
  17. java计算器取余_java计算器代码,只有加减乘除和取余运算的??
  18. PlayStation Now比您想象的要好
  19. JavaScript制作网页时钟
  20. pytorch 移植到Android平台(一)

热门文章

  1. 《好想好想谈恋爱》插曲整理
  2. 图解通信原理与案例分析-32:物流仓储、智能交通中的RFID通信技术详解
  3. Django2.2框架小白项目心得(一)
  4. Pixhawk PID参数整定
  5. 为什么程序员跳槽加薪会比内部调薪要高?
  6. 英特尔推出世界最大 FPGA 芯片;任正非表示华为尚未直接和美国公司商谈5G技术授权;OpenTitan开源……...
  7. 神秘的Flash Translation Layer (FTL)
  8. EM_EXSETSEL
  9. JavaScript经典面试题 —— 解决循环打印问题
  10. 关于积分系统的一点总结