0

バッテリー寿命でいくつかの GPS アルゴリズムをテストしています。core-location フレームワークを使用して非常に単純なアプリを作成したところ、アプリは gps の位置を毎秒更新します。

現在地を更新する時間間隔を 10 秒、1 分などに変更するにはどうすればよいですか?

そして、私のアプリがバックグラウンドにあるとき、GPS の更新を停止します。バックグラウンドで更新し続ける方法を知っていますか?

4

2 に答える 2

2

通常、iOS ではほとんどの場合、バックグラウンド操作が許可されていないことに注意してください。ただし、場所を「永続的に」決定するには、少なくとも 3 つのオプションがあります。

  1. あなたが書いたように:アプリがバックグラウンドにないときは常に場所を決定してください。( 1 )
  2. バックグラウンドでも常に位置を特定します。Info.plist を更新し、必要なバックグラウンド サービスとして場所を追加する必要があります (場所の追跡、たとえば Google Latitiude に必要) (API を見てください)
  3. 場所が大幅に変更された場合にのみ、場所の最新情報を取得します。

時間間隔などを変更することはできません。これらの 3 つのオプションしかありません。必要なときに 1 回だけ位置情報を取得できますが、それは質問の意図ではありませんでした。

于 2013-02-18T18:58:54.790 に答える
0

現在地を更新する時間間隔を 10 秒、1 分などに変更するにはどうすればよいですか?

GPS チップは、位置が 1 秒または 10 秒ごとに必要な場合と同じ電力を必要とするため、これは不可能であり、意味がありません。もちろん、ポジションが気に入らない場合は無視できます(頻繁に来る場合)。

の設定はdesiredAccuracyパワーに影響します:

kCLLocationAccuracyBestForNavigation: GPS と加速度センサーを有効にします : GPS を有効にします kCLLocationAccuracyBestが、加速度センサーは無効にします (必要に応じてセル タワーの位置を特定します)

kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, kCLLocationAccuracyKilometer: 利用可能な場合は、セル タワーまたは Wi-Fi の場所を使用する可能性が高くなります。

消費電力は少なくなりますが (可能性が高くなります)、精度は低くなります。

そして、私のアプリがバックグラウンドにあるとき、GPS の更新を停止します。バックグラウンドで更新し続ける方法を知っていますか?

Apple の LocationAwarnessGuide を読んで情報が見つかった場合は、Info.plist ファイルに正しいキーを設定する方法を教えてください。

iOS 6以降、より多くの電力を節約する追加のバリアントがあります: メソッドがあります: didUpdateLocations(注: 複数!):
これにより、すべての場所が一度に配信されるため、アプリケーションをバックグラウンドで実行し続ける必要がなくなります。アプリがフォアグラウンドに入ると、一度にすべての位置を受け取ります。

于 2013-02-18T19:14:36.730 に答える