2016-07-22 19 views
6

私はローカル通知でビーコンを実装しました。 BluetoothがONになっている場合、すべてのことがうまく動作します&デバイスはビーコンの範囲&のアプリケーションが「実行していない」状態になります。 しかし、デバイスがすでにビーコン範囲&にあるときは、Bluetoothがオンになり、デリゲートは呼び出されません。それは限界か何かが欠けているのですか?デバイスが既にビーコン範囲内にあるときにビーコンを検出できない場合は、Bluetoothをオンにしてアプリケーションを終了します。

+0

なぜこの場合にコールバックが発生すると思いますか?領域の状態は変更されていません。 – davidgyoung

+0

次に、ユーザーがビーコン範囲でBluetoothをオンにしたときに、そのビーコンの通知をどのように表示するのですか? – user928622

+0

デバイスが「ビーコン範囲に既にあり、Bluetoothがオンになっている場合、代理人は呼び出されません」というシナリオでは、 - アプリケーションが終了(強制終了)状態になっている間ですか? – MarioKurt

答えて

0

これは、コアロケーションフレームワークの制限です。

アプリケーションが「実行されていない」状態で終了すると、アプリケーションはロケーションマネージャーのdidEnter/didExitリージョンイベントによって再起動されます。アプリケーションが終了している間にBluetoothのオン/オフを切り替えると、ロケーションマネージャーは地域の入退室イベントを受信しません。 didEnter/didExitイベントを発生させる唯一の方法は、ビーコン領域の1つを検出しきい値を超えて物理的に入力または終了させることです。

  • 終了したアプリケーションは、didEnter/didExitイベントで起きるでしょう。

地域監視サービスは、アプリがフォアグラウンドまたはバックグラウンドで実行されている間、通常イベントを配信します。 (このサービスは、地域とビーコンの両方の地域で使用できます)。終了したiOSアプリの場合、このサービスはアプリを再起動してイベントを配信します。

  • ビーコンレンジングによってアプリが起動することはありません。

(ビーコン・地域のnotifyEntryStateOnDisplayプロパティがtrueの場合、デバイスをウェイクするとアプリがバックグラウンドで数秒間ビーコンを範囲になります。)このサービスは終了したiOSアプリを再起動しません。ただし、地域監視サービスを使用してビーコン領域を監視することで、再起動することができます。

関連する問題