TestsTested | ✓ |
LangLanguage | Obj-CObjective C |
License | MIT |
ReleasedLast Release | Dec 2014 |
Maintained by Unclaimed.
複数のiBeaconの状態変更を NSNotificationに変換して通知するライブラリです。 主に以下の2つの機能があります。
複数のBeaconを指定して、各Beaconごとに、
という状態の変化を NSNotification として通知します。
各BeaconのUUIDを同一にしてあれば、そのBeaconの中で最も近くにあるBeaconがどれかという通知を出します。
もし、異なるUUIDであれば、1番目のBeaconのUUIDと同じBeacon群の中で最も近いBeaconについて通知を出します。
To run the example project; clone the repo, and run pod install
from the Example directory first.
Please see, Example/IBeaconNotifierExample/{GRTAppDelegate.m,GRTExampleViewController.m}
まず、利用するBeaconをTSV形式でします。
例えば、下記のような beacon.tsv
をBundleしておきます。
このTSVは「1行目が列名」「2行目以降がデータ」です。
各列の意味は以下のようになります。
例:
id uuid major minor
BeaconA 00000000-04B1-1001-B000-001C4D153904 1 4
BeaconB 00000000-04B1-1001-B000-001C4D153904 0 2
BeaconC 00000000-04B1-1001-B000-001C4D153904 1 3
まず、
#import "IBNBeaconService.h"
をimportします。
Beacon監視を開始するには以下のようにします。
// start beacon service
self.beaconService = [IBNBeaconService createWithFilename:@"beacon.tsv" bundle:nil];
[self.beaconService start];
IBNBeaconService
のインスタンスは、どこかで保持しておいてください。
あとは任意のコードで、beaconのイベントをNSNotificationCenterを経由して受け取ることができます。
まず、定数定義されているヘッダファイルをimportします。
#import "IBNBeaconServiceConst.h"
IBN_CHANGE_BEACON_STATE
の Notification を Observeします。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleEvent:)
name:IBN_CHANGE_BEACON_STATE
object:nil];
イベントハンドラでは、 以下の情報をが取得できます。
note.userInfo[IBN_BEACON_ID]
beacon.tsv
で指定した id
の文字列が入りますnote.userInfo[IBN_BEACON_STATE]
IBN_BEACON_STATE_INSIDE
IBN_BEACON_STATE_OUTSIDE
IBN_BEACON_STATE_FAR
IBN_BEACON_STATE_NEAR
IBN_CHANGE_NEAREST_BEACON
の Notification を Observe します。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleEvent:)
name:IBN_CHANGE_NEAREST_BEACON
object:nil];
イベントハンドラでは、 以下の情報をが取得できます。
note.userInfo[IBN_BEACON_ID]
beacon.tsv
で指定した id
の文字列が入りますNsNull
が入ってきます。Ken Morishita, [email protected]
iBeaconNotifier is available under the MIT license. See the LICENSE file for more info.