6

機械式コンパスのユーザーとして、磁力計が提供する方位が45度以上ずれていることがよくありますが、その場合はキャリブレーション表示が表示されませんでした。

テストしたり、屋外でアプリを使用したりする場合、コンパスビューが表示されたときに磁力計を調整します。これはうまくいきます、これは必要なようです。

8の字の動きで頻繁にキャリブレーションを実行することで、多かれ少なかれ正確な見出しを実現できる場合は、アプリのユーザーに不正確な見出しを表示したくありません。

コンパスビューが表示されるたびに、磁力計のキャリブレーションビューを強制的に表示するための解決策を知っている人はいますか?

ここですべての(?)投稿を検索しました。同じような考えを持っていたのは1人だけでしたが、答えはありませんでした。

4

4 に答える 4

3

これを行う方法はないのではないかと思います。APIでは(呼び出しを使用して)キャリブレーションビューを閉じdismissHeadingCalibrationDisplayて、アプリのインターフェースが中断されないようにすることができますが、キャリブレーションを強制的に開始する方法はありません。役に立つかもしれないと思うなら、Appleに機能リクエストを提出することをお勧めします。

于 2013-02-24T11:25:16.760 に答える
1

iOS6以下にはそのためのAPIはないと思います:(

于 2013-02-24T11:24:10.800 に答える
1
    - (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.
    }

フォント: コンパスキャリブレーションObjective-c

于 2014-03-10T16:14:55.327 に答える
1

冷蔵庫の磁石をつかんで、iPhoneの画面の上部に移動します。また、iPhoneをいくつかの軸で同時に回転させる必要がある場合もあります。クリエイティブに。

磁力計を再び磁石でだますために、それが地球の磁場にリセットされるのを許可する必要があるかもしれないことに注意してください。これを行うには、iPhoneをすべての軸で回転させます。

キャリブレーション画面が再び消えた後に発生したバグがありました。上記の方法で、10秒程度で自由に表示させることができました。

いくつかの追加情報:キャリブレーション画面が表示されると、AppDelegateapplicationWillResignActiveが呼び出されます。それが終わったら:applicationDidBecomeActive。(私のバグ:モーションマネージャーを再起動したのはでapplicationWillEnterForeground、ではありませんapplicationDidBecomeActive。)

于 2017-03-18T16:41:33.827 に答える