Reputation: 3664
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
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