michal.ciurus
michal.ciurus

Reputation: 3664

CoreBluetooth monitoring 100 beacons with same UUID with unique enters

I use CoreLocation to monitor iBeacons. The problem is that if I for example 100 beacons with same UUID clustered I get only one didEnterRegion, not 100.

Can I fix it by coding my own implementation with CoreBluetooth ?

CoreLocation doesn't need any capabilities on (background modes) to monitor while the app is in background. Does CoreBluetooth need it ? Does apple let apps with these capabilities to the store ?

Upvotes: 0

Views: 202

Answers (1)

davidgyoung
davidgyoung

Reputation: 65025

While you can get CoreBluetooth callbacks when beacons are in the vicinity, Apple blocks the ability to read any beacon data using CoreBluetooth. So this is not a solution. See details here: http://developer.radiusnetworks.com/2013/10/21/corebluetooth-doesnt-let-you-see-ibeacons.html

An alternative solution is to use CoreLocation to combine region monitoring with ranging. You then put your code in the locationManager:didRangeBeacons:inRegion: ranging callback (not the monitoring callbacks). The ranging callback provides an array of all beacons in that region that are visible at the current time. In your case, if 100 beacons were visible at the same time, this callback would contain an array of 100 beacons allowing you to see the identifiers of each.

Upvotes: 1

Related Questions