スマホとBeacon(iBeacon) その3

前回はAndroidでの実装方法を記事にしましたので、
今回はiOSでの実装方法になります。

 ibeacon

iOSはAndroidと違い、アップルが商標としてiBeaconとうたっているだけあって、公式のページが充実しています。
https://developer.apple.com/ibeacon/
最新情報(WWDC14の事等)もどんどんこちらのページに情報が掲載されています。

 

実装方法は、iOSではフレームワークが用意されているのでそちらを使いましょう
(というか使わないとiBeacon使えません!)
適当にプロジェクトを生成して「CoreLocation.framework」を参照に追加します。

 参照追加したら、取り合えずviewDidLoadあたりにビーコンの観測開始のソースを書きましょう。

CLLocationManager 等の変数はプロパティーあたりに定義している物としています。

if ([CLLocationManager isMonitoringAvailableForClass:[CLBeaconRegion class]]) {

    _lm = [CLLocationManager new];
    _lm.delegate = self;
   
    _pUUID = [[NSUUID alloc] initWithUUIDString:ビーコンに設定されているUUID];
    _beacon = [[CLBeaconRegion alloc] initWithProximityUUID:_pUUID identifier:@”testBeacon”];
    [_lm startMonitoringForRegion:_beacon ];

}

 あとはCLLocationManagerDelegate プロトコルのメソッドを実装すれば、
各種イベントを取得出来ます。

例えば
ビーコン範囲内への出入りを検知するのであれば
入 locationManager:didEnterRegion:
出 locationManager:didExitRegion:
で行う事が出来ます。
※ただし、既に範囲内に入っている状態の場合didEnterRegionは呼ばれないようです。

デリゲートメソッドにわたってくる、ビーコンの配列情報の中には、
ビーコンに関する情報がプロパティ値で入っており
識別子用のUUID、major番号、minor番号、ビーコンとの距離(4段階表記)、精度、受信強度
と言った値が取得出来ます。

 以上でビーコンを取り合えず検出して、何かアクションを起こす所までは実装出来ます。

 

Androidとは違いフレームワークとして、
距離の検出等行ってくれる分、iOSの方が使いやすいと言うのが開発者としての意見でしょうか。

 

月曜担当SH



アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム