android - onNmeaReceived 有什么替代方案吗?

标签 android nmea

我编写了一个使用 NMEAListener 提供的 NMEA 数据的应用程序。该应用程序在以下设备上完美运行:

  • 华硕 Nexus 7,Android 4.1.1
  • 三星 Nexus S,Android 4.1.2
  • 索尼爱立信 Xperia Mini,Android 2.3.4
  • 索尼爱立信 Xperia X10 Mini,Android 2.1.1

在所有这些设备上,调用 onNmeaReceived() 都没有问题。

但是在低成本设备上

  • 华为/沃达丰 858、Android 2.2.2

onNmeaReceived() 根本没有被调用。所有设备至少都会调用onLocationChanged(),包括华为。但我不需要位置,我需要 NMEA 数据。

那么,我能做什么呢?

预先感谢您的帮助!

public class Main extends Activity implements NmeaListener, LocationListener {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    LocationManager location = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    location.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1l, 1l, this);
    location.addNmeaListener(this);
}

@Override
public void onNmeaReceived(long timestamp, String nmea) {
}

@Override
public void onLocationChanged(Location arg0) {
}

@Override
public void onProviderDisabled(String arg0) {
}

@Override
public void onProviderEnabled(String arg0) {
}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}

最佳答案

如果您查看此线程,这似乎是一个已知问题:

Issue 7321: NmeaListener does not receive nmea sentences

如果这对您产生影响,除了从位置更新生成假 NMEA 之外,可能没有其他解决方案,至少在受影响的手机上是这样。

[编辑]

从您的评论来看,您似乎认为您需要 NmeaListener 才能显示信号强度和卫星等信息,但我认为您可以在没有 NmeaListener 的情况下执行此操作,只需查看以下答案:

How to measure GPS signal strength on Android?

关于android - onNmeaReceived 有什么替代方案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12951920/

相关文章:

java - 为什么我在 android 中使用 webview 时出现错误?

javascript - 注册时获取用户id

Android:Paging3 使用 cloud-firestore 创建 remotemediator

android - Google Drive Api 在发布应用程序后停止工作

java - 如何在 Nmea 字符串中查找 GPS 源(位置提供商)和航向

android - Android Wear 2.0架构问题带来的实时复杂性

gps - 如何模拟来自串行端口的流数据?

java - NMEA格式数据的经纬度如何转换为十进制?

java - 从 GPS 设备读取 NMEA 数据

java - 不能影响始终为空的简单 Double[] 表的值 - 2 个代码之间的比较