【问题标题】:How do I get LocationManager.addNmeaListener() to work?如何让 LocationManager.addNmeaListener() 工作?
【发布时间】:2021-12-26 09:41:04
【问题描述】:

以下是我的代码的相关部分:-

public class MainActivity extends Activity
    implements SensorEventListener, OnNmeaMessageListener {

    private LocationManager m_locationManager;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ac = this;
        m_locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);    
    }
...
    protected void onResume() {
    ...
        if (m_locationManager != null) {
            m_gpsSensor = new SensorView(this);
            try {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
m_locationManager.addNmeaListener(getMainExecutor(), this);
                } else {
                    // no-op in later versions
                    m_locationManager.addNmeaListener(this);
                }
                m_gpsSensor.lineBreak("gps: ", "no messages yet");
            } catch (Exception ignore) {
                m_gpsSensor.lineBreak("gps: ", getString(R.string.permissiondenied));
            }
            topLayout.addView(m_gpsSensor);
        }
    }

    @Override
    public void onNmeaMessage(String message, long timestamp) {
        long nanos = timestamp * 1000000;
        if (nanos > m_gpsSensor.lastNanos + UPDATE_NANOS) {
            m_gpsSensor.lastNanos = nanos;
            m_gpsSensor.lineBreak("gps: ", message);
        }
    }
}

onNmeaMessage 永远不会被调用(lastNanos 被初始化为零)并且m_gpsSensorView 的子类)显示“还没有消息”。我的设备确实有 GPS,并且该应用程序有权访问它(否则它会显示“权限被拒绝”),并且 GPS 确实有效,因为它可以看到卫星并通过Satstat得到修复

我试过了 addNmeaListener (OnNmeaMessageListener listener, Handler handler) 这也不起作用。 m_locationManager 不为空,因为在这种情况下它根本不会显示任何内容。

该设备是运行 Android 12 的三星 Galaxy S21 Ultra 5G。

我做错了什么?

【问题讨论】:

    标签: android-gps


    【解决方案1】:

    显然addNmeaListener 没有启动 GPS,而且似乎没有明确的要求这样做。您必须调用requestLocationUpdates 变体之一。

    【讨论】:

      猜你喜欢
      • 2011-05-04
      • 2011-04-07
      • 2011-07-27
      • 2011-03-08
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多