Reputation: 23
I am working on an iOS app that detects iBeacon devices around me. From what I understand, we need to know the specific UUID to scan for them.
for ex here: Search for all iBeacons and not just with specific UUID
With this in mind, I use corelocation and I can detect my beacons, ok!
Problem is, when I try several apps in the AppStore, some of the app can just scan all of my beacons with different UUID (I have more than 90 beacons with 8 different UUIDs)!! how is it possible??
App 1: https://itunes.apple.com/us/app/ebeacon/id730279939?mt=8
App 2:https://itunes.apple.com/nl/app/dartle-ibeacon-locator/id904211297?l=en&mt=8
So my first thought is that they use some kind of private framework from Apple, but if you do that, your app will not allow to be published!, hmmmm...
So my question is, how can they do that? - Do they have like a list of all UUID from all the iBeacon manufacturers? - Or they know a way to scan for all surrounding iBeacons UUID?
Can someone pls help me answer the question?
Upvotes: 1
Views: 3989
Reputation: 52538
Apple's intention is that you can't find all beacons around you, mostly for privacy reasons, but also to save power. Your app should only work with specific beacons, so you need to set up all your beacons so your app recognises them. You shouldn't be able to detect the beacons that my app uses. So the presence of a beacon will only be detected if the user explicitly downloads and runs an app that is supposed to detect that beacon.
BTW. If you buy beacons, they should come with an application (usually a Mac or Windows application) that lets you change their ID. So if Joe's Carwash application uses beacons, Joe buys 100 beacons, and then sets them all up to he ID that Joe's Carwash app recognises. Otherwise Joe would be in real trouble if a beacon breaks, needs replacing, and then Joe needs to update his app. Instead if a beacon breaks that was set to ID xxxxx, Joe buys a new beacons, changes its ID to xxxxx, and puts it where the previous beacon was.
Upvotes: 2