Takahiro Octopress Blog

-1から始める情弱プログラミング

複数のiBeacon信号を利用してみよう!

複数のiBeaconを検知する方法

さて、本日はさらっと複数のiBeacon信号の検知について考えてみたいと思います。
(これまでできるだろうという考えではあったものの、実際に試してみたことがなかったのでメモ書きです。)
Central側ではiBeacon信号をキャッチしたときに、そのオブジェクトを配列の形で取得することができます。
具体的には、

1
2
3
4
5
6
7
// Beacon信号を検出した場合
- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
{
  if (beacons.count > 0) {
      NSLog(@"%@", beacons);
  }
}

のように beaconsNSArray の型で返ってきていますよね。
単純にこれを使ってやればよいのです。

実際にログを見てみると、

1
2
3
4
2015-04-13 00:27:23.974 iBeaconSampleCentral[312:15030] (
  "CLBeacon (uuid:<__NSConcreteUUID 0x17403a6e0> 8D4DB809-032F-4771-96F3-99BD5C25F924, major:1, minor:2, proximity:1 +/- 0.07m, rssi:-35)",
  "CLBeacon (uuid:<__NSConcreteUUID 0x174037520> 8D4DB809-032F-4771-96F3-99BD5C25F924, major:1, minor:2, proximity:1 +/- 0.20m, rssi:-45)"
)

となっています。
最寄りのiBeaconのみを使う方法ではできなかった何か新しいサービスを実現できるかもしれませんね。
今日はここまで。

Comments