iBeacons are higher-level constructs than regular BLE peripherals.
In iOS 9,set the allowsBackgroundLocationUpdates property of your CLLocationManager to true.
Beacon Vendor Default UUID
Open Beacon AA6062F0-98CA-4211-8EC4-193EB73CEBE6
Estimote B9407F30-F5F8-466E-AFF9-25556B57FE6D
Radius Networks 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6
Beacon Inside F0018B9B-7509-4C31-A905-1A27D39C003C
Kontakt IO A1EA8121-0E1B-D4A1-B840-63F88C8DA1EA
AirLocate:
E2C56DB5-DFFB-48D2-B060-D0F5A71096E0
5A4BCFCE-174E-4BAC-A814-092E77F6B7E5
74278BDA-B644-4520-8F0C-720EAF059935
maybe have more UUID according to http://stackoverflow.com/questions/19499707/does-airlocate-only-look-for-particular-uuids
E2C56DB5-DFFB-48D2-B060-D0F5A71096E0
5A4BCFCE-174E-4BAC-A814-092E77F6B7E5
74278BDA-B644-4520-8F0C-720EAF059935
112ebb9d-b8c9-4abd-9eb3-43578bf86a41
22a17b43-552a-4482-865f-597d4c10bacc
33d8e127-4e58-485b-bee7-266526d8ecb2
44f506a4-b778-4c4e-8522-157aac0efabd
552452fe-f374-47c4-bfad-9ea4165e1bd9
some suugest id:
https://github.com/AwwApps/Open-Beacon-Credentials
Useage:
like detect your luggage in airport
http://travelradar.awwapps.com/
http://launchhere.awwapps.com/
More about iBeacon from http://beekn.net/2013/10/ibeacons-can-my-ios-app-find-beacons-that-arent-mine/
I went into this in-depth yesterday – trying to parse why Radius Networks was claiming that Android devices could ‘find’ all beacons while iOS can’t. I thought I’d strip it down to a simple version of what I found. Maybe this will be useful to others with the same question
The Challenge
Quite simply, the challenge is that Apple requires a not nil value to initialize and return a region object via initWithProximityUUID. In other words, the iBeacon API requires that you know the UUID of the beacon device in order for your iOS device to find it. What’s unclear is whether Apple’s not nil rule is, well, a rule or a recommendation (if you can help with the answer, drop it in the comments below).
Solution
Use a wildcard for UUID:
A comment on Stack Exchange proposes a simple work-around: inserting a wildcard character in place of an actual UDID. In theory, this will return a result showing all beacons in a region. BUT, note the comment above: it seems like there might be the possibility that Apple would reject your app because you’re basically hacking around their recommended approach.
OR, Use CoreBlueTooth Instead
Joris Kluivers notes that proximity detection is perfectly possible without using the iBeacon API. Just use CoreBlueTooth for Bluetooth LE detection instead. (Click through his post to see a video demo of how he achieved this even before iBeacon was available).
You might also want to check out the sample code at Apple for the Heart Rate Monitor app to see how it scans for peripherals. The relevant line is:
[manager scanForPeripheralsWithServices:[NSArray arrayWithObject:[CBUUID UUIDWithString:@”180D”]] options:nil];
Finding is NOT the Same as Pairing
But finding someone else’s beacon isn’t the same as pairing with it. In order to pair, you DO need the UUID if the device requires authentication in order to pair. That’s because a beacon sends out two ‘streams’ – an ‘advertising packet’ that lets the world know it’s there, and the data channels that get opened up when your iOS device ‘pairs’.
The advertising packet is open. You can discover that there’s a beacon, find out its RSSI strength, and make a rough approximation of how far you are from the beacon based on this data.
But it’s only when you pair with the device that you get the information that’s in the data channel: accuracy, ranging and other information that let you calculate proximity more precisely and take full advantage of the other methods in the iBeacon class.
http://developer.estimote.com/ibeacon/tutorial/part-2-background-monitoring/
Keep in mind: When monitoring a region that spans multiple beacons, there will be a single “enter” event when the first matching beacon is detected; and a single “exit” event when none of the matching beacons can be detected anymore. There’s no way to keep track of “interim” beacons’ “enters” and “exits”—other than creating a single region per each beacon of course.
Important: iOS restricts the number of regions (the beacon ones, and regular geofences combined!) that can be monitored at a time to 20, so for larger deployments you’ll need to plan accordingly and group the beacons you want to monitor into at most 20 regions.
Is it possible to monitor an unknown Beacon?
No, iOS doesn’t provide a mechanism to find beacons that you don’t know about
http://beekn.net/2013/10/ibeacons-can-my-ios-app-find-beacons-that-arent-mine/
According to Radius Networks (authors of the AltBeacon spec and the android-beacon-library it’s not possible to identify a beacon using CoreBluetooth- So, is there any way to to monitor or range for any beacon regardless of its ProximityUUID on iOS? The short answer is no. http://developer.radiusnetworks.com/2013/10/21/corebluetooth-doesnt-let-you-see-ibeacons.html
http://stackoverflow.com/questions/18784285/search-for-all-ibeacons-and-not-just-with-specific-uuid
If you’re planning to use the “location” background mode to do long-term ranging without a major user benefit (for example just to track user’s movements for your analytics—i.e., you’re the beneficiary, not the user), you will most certainly have your app rejected.
https://community.estimote.com/hc/en-us/articles/203914068-Is-it-possible-to-use-beacon-ranging-in-the-background-
http://stackoverflow.com/questions/39109919/swift-2-beacon-scan-in-background