0

iOS のリージョン モニタリングに基づくアプリに問題があります。

半径 300 メートルの監視対象地域があり、私の場所がその地域の中心から 350 メートル離れているとします (しかし、私は車に乗って私の地域に近づいています)。

その瞬間にアプリを閉じると、GPS が即座にオフになり、メソッド「didEnterRegion」が呼び出されることはありません。この問題は、現在地が監視対象地域から離れている場合 (たとえば 500 メートル離れている場合) には発生しません。

これを修正することは可能ですか? 「必要な位置情報サービス」をバックグラウンドで設定する「バックグラウンドモード」を試してみましたが、これにより「地域監視」の代わりに GPS が使用され、GPS が停止しません。

地域監視の問題は、ユーザーがすでに「地域内」にいる場合、この機能が機能しないことです。これにより、時間内通知に多くの問題が発生します。

4

1 に答える 1

0

まず、リージョン モニタリングを機能させるためにバックグラウンド モードは必要ありません。リージョン モニタリングは、デバイスをスリープ状態にしても (トップ ボタンを押して) 機能し続けます。さらに、必要に応じて BG モードを使用しない場合、Apple はアプリを拒否する可能性があります。

あなたの問題については、すでに中にいて、何らかの理由で didEnterRegion を取得していない場合は、バックアップ計画を使用する必要があります。CLRegion クラスcontainsCoordinateでは、リージョン内にいるかどうかを確認するために呼び出すことができます。

おそらく何らかの理由で、追加領域が再初期化されるため、didEnterRegion 呼び出しが行われませんでした。つまり、地域を再追加しました。

于 2013-04-09T18:02:50.633 に答える