【问题标题】:ios magnetometer: force display of calibration viewios磁力计:校准视图的力显示
【发布时间】:2013-02-08 18:03:46
【问题描述】:

作为机械罗盘的用户,我注意到磁力计提供的航向通常偏离 45 度或更多,尽管在这种情况下没有出现校准显示。

如果我在户外测试或使用我的应用程序,我会在我的指南针视图出现时校准磁力计。这行得通,看来这是必要的。

我不想向我的应用程序的用户显示一个不准确的航向,如果可以通过执行频繁的八字形运动校准来实现或多或少准确的航向。

有没有人知道每次我的指南针视图出现时强制显示磁力计校准视图的解决方案?

我在这里搜索了所有(?)帖子,只有一个人有类似的想法,但没有答案。

【问题讨论】:

    标签: ios cllocationmanager calibration magnetometer


    【解决方案1】:

    恐怕没有办法做到这一点 - 虽然 API 允许您关闭校准视图(使用 dismissHeadingCalibrationDisplay 调用)以防止它中断您的应用程序界面,但没有强制开始校准的方法。如果您认为它可能有用,我建议向 Apple 提交功能请求。

    【讨论】:

    【解决方案2】:

    我认为在 ios6 及以下版本中没有任何 api :(

    【讨论】:

      【解决方案3】:
          - (BOOL)locationManagerShouldDisplayHeadingCalibration:(CLLocationManager
      *)manager {
              if(!manager.heading) return YES; // Got nothing, We can assume we got to calibrate.
              else if( manager.heading.headingAccuracy < 0 ) return YES; // 0 means invalid heading, need to calibrate
              else if( manager.heading.headingAccuracy > 5 )return YES; // 5 degrees is a small value correct for my needs, too.
              else return NO; // All is good. Compass is precise enough.
          }
      

      字体: Compass calibration objective-c

      【讨论】:

      • 问题不同:假设 ios 认为当前不需要校准,但我认为它总是需要,所以我想要校准视图,每当我展示我的指南针时。
      • locationManagerShouldDisplayHeadingCalibration: 被称为首次请求航向更新,因此您可以在显示指南针并返回 TRUE 时立即startHeadingUpdates。那是你试图做的吗?
      • 不,在户外远足时,您经常需要指南针。但是只有当你总是用它来校准它时,指南针才是准确的。所以我要强迫!!每当我的应用决定显示它时显示的校准视图。
      • 你的代码不会运行。您将CLHeading 与accuracyDegree 进行比较。在第一次标题更新后,该方法也会被调用。
      【解决方案4】:

      拿一块冰箱贴,将它移到 iPhone 屏幕的顶部。您可能还需要同时在几个轴上旋转 iPhone;要有创意。

      请注意,要再次用磁铁欺骗磁力计,您可能需要让它自行重置为地球磁场。您可以通过在所有轴上旋转 iPhone 来做到这一点。

      校准屏幕再次消失后出现了一个错误。上面的方法可以让我在10秒左右的时间内随意强制出现。

      一些附加信息:当校准屏幕出现时,AppDelegate 的applicationWillResignActive 被调用。然后完成后:applicationDidBecomeActive。 (我的错误:我只在applicationWillEnterForeground 中重新启动了我的运动管理器,而不是在applicationDidBecomeActive 中。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-05
        • 2014-01-04
        • 2019-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多