web-dev-qa-db-ja.com

iOSマルチタスクトラックGPSロケーション

バックグラウンドでGPSを介して現在地を追跡するiOSアプリを作成できるかどうか疑問に思っていました。

組み込みのアプリ「マップ」で試してみましたが、役に立ちませんでした。

これが可能であれば、サンプルコード、ドキュメント、またはチュートリアルを参照していただければ幸いです。

(これが重複している場合は、お知らせください。削除します)

23
Linuxmint

これは可能です—一般的なマルチタスクについては このドキュメント を参照してください。 「バックグラウンドでのロケーションイベントの取得」についてはロケーション認識プログラミングガイドのこのセクション を参照してください。もちろん、これらはすべて、排他的なGPSではなく、iOSデバイスが現在地を取得できるさまざまな方法(セルタワーの三角測量、Skyhookスタイルのwifiネットワーク観測およびGPS)のすべてについて説明しています。

つまり、これらのドキュメントを読んでから、UIBackgroundModesキーを配列であるinfo.plistに追加し、値「location」をその中に入れます。その後、バックグラウンドでもCLLocationManagerの更新を受信します。

ただし、バッテリーに優しくしたい場合は、CLLocationManagerでstartMonitoringSignificantLocationChangesメソッドを使用することをお勧めします。そうすれば、バックグラウンドアプリでいっぱいになることなく、バックグラウンドにいるときでも、適切に重要な位置の更新を取得できます。ドキュメントの他の部分では、重要な変更は、あるセルタワーから別のセルタワーへの変更であると述べています。

43
Tommy