Android LocationManager 中 NMEA 语句的来源

Source of NMEA sentences in Android LocationManager

我的 Note2 由于 WNRO.

而停止提供正确的 GPS 位置信息

我可以从记录 NMEA 句子中看出传递了错误的日期,而且后缀每隔 seconds/minutes 就会丢失。 Note2 使用 Broadcom 的二进制专有驱动程序 (gpsd) 与芯片进行交互。要查看是否可以解决此问题(就像我在其他一些设备上所做的那样),我需要知道 Android 中负责输出 NMEA 语句的内容。

NMEA 语句总是由 GPS 芯片和相应的驱动程序直接输出到命名管道中,还是由 LocationManager-framework/API 生成的 NMEA 语句?

NMEA语句由GPS芯片生成,例如

通过 android.location.GpsStatus.NmeaListener

Used for receiving NMEA sentences from the GPS.

通过实现这个接口并调用

LocationManager#addNmeaListener to receive NMEA data from the GPS engine.

https://developer.android.com/reference/android/location/GpsStatus.NmeaListener

两个引号均表示 NMEA 语句不是由 Android 位置 API 生成的。

注意:我引用了一个已弃用的接口 (GpsStatus.NmeaListener),因为 Note2 是一个旧设备,很可能正在使用它。