0

バックグラウンドで [領域内ではなく] ビーコンの周りに費やす時間を特定するための正しいアプローチは何ですか。アプリが didRangeBeacons といくつかのビジネス ロジックを使用してフォアグラウンドにあるときにこれを行うことができます。アプリがバックグラウンドで位置情報の更新を登録しているときに測距が機能するといういくつかのフォーラムを読みましたが、成功していません。UIBackgroundModesplistにロケーション更新キーを追加しました。

estimote ビーコンとその SDK を使用しています。

4

1 に答える 1

1

ここに2つの可能な解決策があります:

  1. 領域の開始と終了のイベントをリッスンし、タイムスタンプを保存してから、それらを使用して終了時のタイム スパンを計算します。ビーコンを 1 つだけ含むように領域を定義すると、領域を監視することはビーコンを監視することと同じになります。心に留めておくべき唯一のことは、iOS では同時に監視されるリージョンが 20 に制限されていることです。そのため、このソリューションは 20 ビーコンを超えて拡張されません。

  2. バックグラウンドでレンジングを使用します。とは別に、UIBackgroundModes通常の位置情報サービス、つまり も開始する必要がありますstartUpdatingLocation

    ビーコン測距は、アプリがフォアグラウンドで実行されている間、イベントを正常に配信します。アプリがバックグラウンドにある場合、このサービスは、アプリで位置情報の更新のバックグラウンド モードが有効になっており、標準の位置情報サービスが実行されている場合にのみイベントを配信します。

    (これは、CLLocationManager クラス リファレンスの「バックグラウンドでの位置情報サービスの使用」セクションからのものです)

    バックグラウンドでの測距は通常よりもバッテリー寿命を消耗することに注意してください。また、Apple はバックグラウンド モードを使用する正当な理由を求めています。バックグラウンド モードがアプリのユーザーに何らかの価値をもたらさない限り、ユーザーはアプリを拒否することを選択する可能性があります。全体として、背景の範囲を賢く使用してください。(:

于 2014-09-29T15:35:59.307 に答える