【问题标题】:How can I link the number of satellites retrieved from GpsStatus to a specific fix recorded by LocationListener?如何将从 GpsStatus 检索到的卫星数量链接到 LocationListener 记录的特定修复?
【发布时间】:2013-02-23 19:17:50
【问题描述】:

我一直在阅读过去关于GpsStatus 的问题,但我对一个问题感到困惑:当我从GpsStatus 由我的GpsStatusListener 更新的对象中检索上一次修复中使用的卫星数量时,如何我知道这与我的LocatonListener 记录的修复相同吗?

我记录修复中使用的卫星数量的第一种方法是在我的GpsStatusListeneronGpsStatusChanged 方法中计算它们,并将数字传递给一个变量,然后我在@987654327 的顶部访问该变量@ 的 onLocationChanged 方法。但是我经常会报告零卫星计数以进行 GPS 修复,当我记录发生的事情时,我发现我的 GpsStatusListener 正在发射一长串不同的卫星计数,之后我的 @ 987654330@ 然后抓住了最后一个——即使之前的值更高,它也经常被证明为零。我的假设是这是一个时间问题:最新修复在GpSStatusListener 记录卫星数量的时间和LocationListener 启动其onLocationChanged 方法的时间之间发生了变化。

我尝试的第二种方法是简单地更新GpsStatusListener 中的GpsStatus 对象,然后在我的LocationListeneronLocationChanged 方法的最顶部计算来自该对象的卫星(见下文)。但是,这似乎也不能解决问题。

有人有更好的方法吗?还是我担心这个时间问题是错误的?

这是我用于第二种方法的代码的相关部分:

    //. . . 

private class GpsStatusListener implements GpsStatus.Listener {
    @Override
    public void onGpsStatusChanged(int event) {
        if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) {
            if (gpsStatus != null) {
                locationManager.getGpsStatus(gpsStatus);
            }
        }
    }
}

private class mLocationListener implements LocationListener {
    public void onLocationChanged(Location location) {
        GpsStatus thisFixGpsStatus = gpsStatus;
        Iterator<GpsSatellite> sats = thisFixGpsStatus.getSatellites()
                .iterator();
        satCount = 0;
        while (sats.hasNext()) {
            GpsSatellite gpsSatellite = (GpsSatellite) sats.next();
            if (gpsSatellite.usedInFix()) {
                satCount++;
            }
        } // . . .  

【问题讨论】:

    标签: android gps locationmanager locationlistener


    【解决方案1】:

    虽然这可能无法完全回答您的问题,但提供一些背景信息:

    GPS 芯片通常不会每秒提供卫星(已使用)数据集的数量。典型值为每 5 或 10 秒。原因是卫星星座不是每一秒都在变化的。

    所以可能没有办法让 num sats 同步到 Android 手机上的对应修复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-14
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-03
      • 1970-01-01
      相关资源
      最近更新 更多