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

Using USB GPS on android device without builtin GPS; Equivalent of gpsd

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

我正在寻找 Android 相当于 Linux 中可用的 gpsd 库。虽然我能看到很少的应用程序(你在这里等),但我找不到任何可以在我的应用程序开发中使用的库 API。

因此,我正在考虑使用 USB host API with marine-api 库来执行此操作。我担心这会变得多么复杂,如果我要重新发明轮子。 大家有更好的建议吗...

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

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

Android 4.0 and later versions use gpsd to interpret the data stream from the onboard GPS

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

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

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

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

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

来自手册:

Will the USB GPS work with other Street Mapping software?

Globalsat USB GPS receivers provides standard NMEA data for mapping software to use and convert to coordinates and should work well with most any NMEA compliant software on the market today.

这意味着您可以发送标准 NMEA 命令

例如

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

$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,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