在没有内置GPS的Android设备上使用USB GPS;相当于gpsd

时间:2016-02-23 16:46:27

标签: android gps usb android-gps

我正在为android 4.4设备开发一个应用程序。这些没有内置GPS。我打算使用USB GPS(globalsat BU353-S4)。

我一直在寻找与Linux中可用的gpsd库等效的Android。虽然我可以看到很少的应用程序(你在这里等),我找不到任何我可以在我的应用程序开发中使用的库API。

所以,我正在考虑使用USB host APImarine-api库来执行此操作。我担心这会变得多么复杂,如果我重新发明轮子。 任何人都有更好的建议......

1 个答案:

答案 0 :(得分:1)

GPSD在Android 4.0及更高版本上可用。

http://www.catb.org/gpsd/faq.html

  

Android 4.0及更高版本使用gpsd来解释数据流   从车载GPS

gpsd处理来自GPS设备的NMEA数据。

如果由于某种原因它不在您的设备上,您可以下载并安装它。

http://www.catb.org/gpsd/installation.html

但是,您声明您的设备上没有GPS功能,您将使用globalsat BU353-S4。

查看manual您安装驱动程序,GPS设备将自身显示为com端口。假设linux驱动程序适用于您的Android设备,您将能够向USB GPS设备发送命令。

从手册:

  

USB GPS可以与其他街道地图软件配合使用吗?

     

Globalsat USB GPS接收器提供标准的NMEA数据用于映射   要使用和转换为坐标的软件,应该可以正常使用   目前市场上大多数符合NMEA标准的软件。

您可以发送标准NMEA命令的方法

e.g。

GGA - 提供3D位置和准确度数据的基本修复数据。

$ GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,男,46.9,M,* 47

其中:

 GGA          Global Positioning System Fix Data
 123519       Fix taken at 12:35:19 UTC
 4807.038,N   Latitude 48 deg 07.038' N
 01131.000,E  Longitude 11 deg 31.000' E
 1            Fix quality: 0 = invalid
                           1 = GPS fix (SPS)
                           2 = DGPS fix
                           3 = PPS fix
               4 = Real Time Kinematic
               5 = Float RTK
                           6 = estimated (dead reckoning) (2.3 feature)
               7 = Manual input mode
               8 = Simulation mode
 08           Number of satellites being tracked
 0.9          Horizontal dilution of position
 545.4,M      Altitude, Meters, above mean sea level
 46.9,M       Height of geoid (mean sea level) above WGS84
                  ellipsoid
 (empty field) time in seconds since last DGPS update
 (empty field) DGPS station ID number
 *47          the checksum data, always begins with *

如果从NMEA开始,可能会对以下内容感兴趣:

https://www.sparkfun.com/datasheets/GPS/NMEA%20Reference%20Manual-Rev2.1-Dec07.pdf