LoginSignup
26
24

More than 5 years have passed since last update.

iOSデバイスをiBeacon発信機にする.

Last updated at Posted at 2015-01-25

道具作りから

ちょっとしたiBeaconアプリを作りたかったんですが、開発用に使ってたLightBlue Beanのコイン電池が切れてたので、とりあえず自宅にはiPhone6もiPad Airもあるので一台をiBeacon発信機にして開発を進めることにしました。

AppStoreにはこれというものがなかったので、ネットで探すと実装の参考となるサイトも見つかったのですが、検索キーワードの問題なのか探すのは大変でした。
iBeacon自体がそんなに話題になってないのかな・・・とか思ったり。
単純なものでよかったので、自分で実装してみることにしました。

実装

サンプルコード

iBeaconアプリもそうなんですが、うまくフレームワーク化されているので非常にシンプルに利用することができます。(これで面白いアプリを作るのは簡単ではないかも)

CBPeripheralManagerとCBPeripheralManagerDelegate

iBeaconの発信にはCBPeripheralManagerとCBPeripheralManagerDelegateを実装する必要があります。


self.peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self
                                                                 queue:dispatch_get_main_queue()];

これはviewDidLoadにでも置いておけばよいです。


#pragma mark - delegate
- (void)peripheralManagerDidUpdateState:(CBPeripheralManager *)peripheral
{

}

このメソッドをオーバーライドしないとWarningが出ますが、中身は空でよいです。

ビーコンの発信

次のようなコードで発信できます。


  NSUUID* uuid = [[NSUUID alloc] initWithUUIDString:UUID];
  CLBeaconRegion* region = [[CLBeaconRegion alloc] initWithProximityUUID:uuid
                                                                   major:[self.majorText.text intValue]
                                                                   minor:[self.minorText.text intValue]
                                                              identifier:[uuid UUIDString]];

  NSDictionary* peripheralData = [region peripheralDataWithMeasuredPower:nil];//Default
  [self.peripheralManager startAdvertising:peripheralData];

UUIDは128bitのユニークなキーを与える必要がありますが、コンソールからuuidgenを使って生成したキー文字列を利用するのがよいと思います。

github

下記にサンプルプロジェクトを起きました。
参考にしてください。
https://github.com/g-1/iBeaconDevice

確認方法

ちゃんとビーコンを発信できているかどうかという確認ですが、私はLightBlue
というアプリを使ってます。
お手軽に確認ができるのでオススメです。

IMG_3596.PNG

謝辞

下記のサイトを参考にさせていただきました。
http://www.gaprot.jp/pickup/ios7/vol2/

ただ、iOS7のときの記事なので、iOS8になっていろいろ変わっているかもしれません。
設定の位置情報のくだりは、確認できませんでした。
iBeaconはiOS8になっていろいろ変わっているので他にも違っている箇所があると思われます。

26
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
24