一昨年からiBeaconでのO2Oビジネスが盛り上がってきて、
前職でもiBeacon関係をいじってきたので、そろそろ僕も何か書こうかなと思いました。
(技術的なことはもうほとんどQiitaのほうで書かれているけど。。。)

まずは詰まったところとか書いてみました。

・CoreBluetoothはビーコンのIDをランダムに発生させる
CoreLocationで記述されているproximityIDはiBeaconに準拠したビーコンが持つIDでこれは固定されたIDが受信される。
しかし、CoreBluetoothで受け取るビーコンのUUIDはiOS端末ごとにランダムで発行される。

proximityID ≠ UUID

というわけなので、混ざらないように理解をしないといけない。
UUIDもランダムなので

iPhone Aで受け取ったbeacon-CのUUIDを
iPhone Bにお知らせして
iPhone Bがbeacon-Cを検索する

ことはできない。

・バックグランドでCoreBluetoothのcentralを動かすにはCoreLocationを同時に使ってはいけない
実はかなりはまりどころ。
バックグランドでCoreBluetoothのcentral機能とCoreLocationを同時に使うことができません。
何か競合を起こす可能があるのでしょうか。。。


まとめ
CoreLocationでのiBeacon受信 : みんなが使うビーコンで自分がどこにいるのかを把握するために使う
CoreBluetoothでのiBeacon受信 : 自分だけのプライベートな状態を把握したり、BLEなデバイスと通信するために使う

CoreLocationはみんながわかる本名をつかう(ProximityID)
CoreBluetoothは当人同士がわかるニックネームを使う(UUID)
というふうに覚えるといいかもしれません。

独立してから、まだiBeacon関係の仕事できていないなぁ。。。
やりたいなぁ。。。。

0 Comments: