複数の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);
}
}
|
のように beacons が NSArray の型で返ってきていますよね。
単純にこれを使ってやればよいのです。
実際にログを見てみると、
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のみを使う方法ではできなかった何か新しいサービスを実現できるかもしれませんね。
今日はここまで。