2017-01-30 10 views
0

迅速なiOSのバックグラウンドで位置座標を記録しようとしています。 アプリがバックグラウンドに入るときはstartMonitoringSignificantLocationChangesを使用し、フォアグラウンドに入るときはstopMonitoringSignificantLocationChanges()startUpdatingLocation()を使用します。 ロケーションマネージャをfinishLaunchingに正しくインスタンス化しました。 iPhoneがインターネットに接続されているときはすべてうまく見えますが、インターネットが利用できない何らかの理由で、私は座標がなく、didFailWithErrorへの呼び出しがないようです。場所がありませんSignificantLocationMonitoringでインターネットなしの座標

フォアグラウンドで、それは、少なくともエラー与えながら:Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)"

しかし、私は30KMを旅しながら、バックグラウンドのために、それもエラーを与えるものではありません。

デバッグの目的didFailWithErrorおよびdidUpdateLocationsのコールバックの場合にローカル通知を使用して通知します。

アクティブなインターネット接続では、アプリケーションが強制終了されても、バックグラウンドでもうまく動作しますが、Wi-Fiや携帯電話のデータを使わずに同じことを試しても、全く応答しないようです。どのようにGPSの設定を処理し、私はすべてのバックグラウンドでそれ自体でソートしたいユーザーの場所を監視する。この動作には何らかの説明がありますか?インターネットがなければ、私はオフラインの振る舞いをする必要があります。

おかげ

アップルのドキュメントから
+0

飛行機モードにすることでインターネット接続を無効にしていますか? – Andrea

+0

GSMを使用する国にいますか? – shallowThought

+0

はい、浅いです。 –

答えて

0

:地域の監視の可用性を決定

任意の領域を監視しようとする前に、あなたのアプリケーションは、地域の監視がオンにサポートされているかどうか を確認してください現在のデバイス。ここには がありますが、地域のモニタリングが利用できない理由がいくつかあります。

デバイスには、モニタリング領域 をサポートするために必要なハードウェアがありません。
ユーザーは、地域の承認を使用するアプリケーションを拒否しました。 の監視。
ユーザーが設定アプリで位置情報サービスを無効にしました。
ユーザーは、設定アプリで背景アプリの更新を無効にしています( )。
デバイスは飛行機モードにあり、 は必要なハードウェアの電源を入れることができません。

発生している問題は、「Region Monitoring and Ibeacon」ドキュメントのセクションからこの抽出物と一致しています。
WiFiを無効にして携帯データを無効にして、テストを変更してみます。

+0

ありがとう@andreaしかし、私は地域の監視をしていません。デバッグのために飛行機モードを数秒間切り替えて、セルタワーが変更され、ロケーションマネージャの代理人にコールバックする必要があるというiPhoneの印象を与えますが、デバイスがインターネットや無線LANに接続されていない場合はコールバックはありません。私はimportantMonitoringの望ましい動作は、それが起こっていないdidFailWitherrorを呼び出す必要があります場所を取得するために失敗した場合、セルタワーの変更とGPSを目を覚ます必要がありますと思う。しかし、携帯電話のデータでは、バックグラウンドで適切に代理人にコールバックを提供します。再度、感謝します。 –

+0

私は間違っているかもしれませんが、私は地域の監視が重要な場所の変化の密かな親であると考えています。私はまた、GPSの動作について懐疑的です、この種の機能は、バッテリーの消耗を避けるために使用されています。 :) – Andrea

+0

ありがとうございます。あなたは正しいです、彼らはバッテリーを節約するのに大変です。 SignificantLocationがインターネットや携帯電話なしでデリゲートにコールバックを与えないという説明はありますか?私のアプリケーションにはインターネットに接続されていないときに時間があり、GPSからロケーションを取得できない場合、少なくともdidFailwithErrorは場合。 –

関連する問題