向GPS接收器发送命令

时间:2018-01-08 05:30:31

标签: java android

如何向GPS接收器发送命令?

我使用LocationManager获取位置详细信息,但无法找到如何将NMEA命令(如GPXTE,GPRMB ...)发送到GPS接收器。

请告诉我如何实现这一目标。

1 个答案:

答案 0 :(得分:1)

您可以浏览Android文档部分Send Emulator Console Commands以详细了解这一点。

  

地理位置

通过向模拟器发送GPS修正,设置报告给模拟器内运行的应用程序的地理位置。 您可以在虚拟设备运行后立即发出geo命令。模拟器通过创建模拟位置提供程序来设置您输入的位置。此提供程序响应应用程序设置的位置侦听器,并将位置提供给LocationManager。任何应用都可以通过调用LocationManager.getLastKnownLocation("gps")

来查询位置管理器以获取模拟设备的当前GPS修复
  

geo Command

格式为 geo<修复| nmea>

地理位置修复经度纬度卫星[海拔]

向模拟器发送简单的GPS修复程序。以十进制度指定经度和纬度。使用1到12之间的数字来指定用于确定位置的卫星数量,并以米为单位指定高度。

geo nmea句子

向模拟设备发送NMEA 0183句子,就好像它是从模拟GPS调制解调器发送的一样。用'$ GP'开始句子。目前仅支持'$ GPGGA'和'$ GPRCM'句子。以下示例是GPGGA(全球定位系统修复数据)句子,用于获取GPS接收器的时间,位置和修复数据:

geo nmea $GPGGA ,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx

例如:

geo fix 121.5 25.4 10 

geo nmea $GPRMC,071236,A,3751.65,S,14527.36,E,000.0,073.0,130309,011.3,E*62

geo命令可以将GPS位置发送到模拟器。 geo fix发送一组由经度,纬度和高度表示的固定GPS位置,可以从某些网站上的地图获得,例如经度121.5,纬度25.4和高度10米。当Android设备通过USB连接到外部GPS设备时,您可以使用geo nmea命令将位置发送到外部GPS设备。

美国国家电气制造商协会(NEMA)为GPS设备开发了NMEA 0183协议。 gps nema命令的格式很复杂,由12个字段组成,但由于这种复杂性,该命令提供的定位比geo fix命令更准确。 gps nema命令的格式如下:

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh 

$GPRMC,hhmmss.ss,A,IIII.II,a,yyyyy.yy,a,x.x,x.x,ddmmyy,x.x,a*hh

$GPRMC (Recommended minimum specific GPS/Transit data)
  

参考