2013-10-22 11 views
5

私はCLBeaconRegionについていくつかの読書をしており、iBeaconsを正常にセットアップし、アプリケーションがバックグラウンドにいる間でも場所の更新を引き起こしました。CLBeaconRegionが終了してからdidEnterRegionを呼び出さなかった

しかし、私が読んでCLRegionから持ち越したものから、アプリケーションが終了した後にlocationManager:didEnterRegion:を打つことが可能でなければならないことを理解します。

私はセットアップをした私のこのようなCLBeaconRegion

beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:SERVICE_UUID] 
                 major:0 
                 minor:0 
                identifier:BEACON_ID]; 
[beaconRegion setNotifyOnEntry:YES]; 
[beaconRegion setNotifyOnExit:YES]; 
[beaconRegion setNotifyEntryStateOnDisplay:YES]; 

しかし、私は終了からCLLocationManagerのデリゲートをトリガすることはできませんよ。私は地域を離れて(通知で確認された)、ビーコンから遠くに旅行し、30秒間待ってからビーコンに戻りましたが、終了時に代理人を誘発しません(バックグラウンドとフォアグラウンド)。

この処理は終了する必要がありますか?何か不足していますか?どんな助けも素晴らしいだろう。

答えて

4

私はあなたがバックグラウンドにいるとき、または実行していないときに、locationManager:didDetermineState:forRegion:の代わりにlocationManager:didEnterRegion:を呼び出し、notifyEntryStateOnDisplayをTRUEに設定したときだけ、

+0

、それはまだlocationManager '呼び出す:didEnterRegion:'、 'locationManagerとして:didDetermineState:forRegion:'、しかし、私のテストから、それはどちらかの終了状態(ユーザースワイプから呼び出しませんアプリケーションをアップ)。私は 'notifyEntryStateOnDisplay'を' YES'/'TRUE'に設定しています。 – RileyE

1

編集:以下は、7.1からはもはや真です。あなたはまだアプリケーションは、アプリケーションスイッチャーに離れてスワイプされているアプリケーションの

行動は、今あなたからアプリケーションを削除

iOSの7の下にユーザーを記述している効果を持って閉鎖した場合であっても通知を受け取ることができますswitcherはあなたのアプリがバックグラウンドで実行されないようにすることを決めました。したがって、領域の監視はアプリケーションを再オープンしません。

詳細については、WWDC 2013の「What's New Multitasking」セッションを参照してください。

-1

うん、

Same behaviour is being noticed .Sometimes even while calling setNotifyEntryStateOnDisplay, didEnterRegion not called even when in foreground. 
1

これはしかし、この動作はiOSの7.1の下で変更されているiOSの7の正常な動作です。 iOS 7.1はデリゲートコールをiOS 7以前の動作に戻します。

私はこの現象を私のブログポストで文書化しました。バックグラウンドで

http://www.simplymadeapps.com/blog/2014/03/7-1-brings-back-geofence-behavior/

+0

これは素晴らしいと大きな助けです。ありがとうございました! – RileyE

関連する問題