UUID, majorId, minorId

iBeacons can be identified through their UUID, majorId and minorId. In the registry, each airport has its own UUID, and each beacon zone has its own majorId.

An iOS app can scan for beacons when the app is active (called 'ranging') or scan for beacons when the app is not active (called 'monitoring'). In both cases the app needs to specify which beacons to scan for by specifying a combination of UUID/majorId/minorId. So, for example, an app can register an airport UUID as a region to monitor and the app will be woken up by iOS when the passenger enters the airport (assuming there are beacons in that airport of course!)

An few important limitations to understand about background monitoring for beacons:

  • Your app will only be woken when the passenger enters a region, and when the passenger exits the region. So if you monitor for a single UUID, your app will be alerted when entering the airport, and when exiting (assuming a blanket coverage of the airport - which is by no means assured).
  • There is a limit of 20 regions you can monitor for (a region includes both geographical region, and iBeacon region defined by UUID and/or majorId and/or minorId
What this means is that you generally can't monitor for every beacon in the airport (you'll exceed the 20 region limit), and also it probably isn't sufficient to monitor for just the UUID of the airport (your app will not get activated enough as the passenger moves through the airport).