iBeacon specifications says:
The UUID, major and minor values provide the identifying information for the iBeacon.
Major and minor values are used to distinguish products or elements within a region. The Apple documentation is quiet clear on how to do it and the store example is quiet good.
However all this works well only when there is one element category per region (or sub-region) but it doesn't work well if we want the APP to be able to distinguish among elements with the same minor and major within the same region.
Is there some other unique identifier associated to an iBeacon that can be monitored/detected so that I can distinguish iBeacons with the same minor and major value?
EDIT: Additional information
To test this I have created two iBeacons with the same UUID and same major and minor value and then started monitoring for the iBeacons within the UUID that I specified.
The callback code that I have implemented for iBeacons ranged in the regions is the following:
-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region {
NSLog(@"Did range %lu beacon in region %@", (unsigned long)[beacons count], region.identifier);
for (int i=0; i<[beacons count]; i++) {
CLBeacon *beacon = [beacons objectAtIndex:i];
// <- breakpoint!
NSString *_cnt = [[NSString alloc] initWithFormat:@"Number of beacons is : %lu and the current one %i is %f away from you %@",(unsigned long)[beacons count], i, beacon.accuracy, beacon.description];
}
}
When I add a breakpoint to the beacon line I see that both CLBeacon objects detected have the same information:
CLBeacon (uuid:<__NSConcreteUUID 0x17003d8e0> 74278BDA-B644-4520-8F0C-720EAF059935, major:20, minor:0, proximity:1 +/- 0.17m, rssi:-42)
CLBeacon (uuid:<__NSConcreteUUID 0x17003e840> 74278BDA-B644-4520-8F0C-720EAF059935, major:20, minor:0, proximity:2 +/- 0.28m, rssi:-47)
So as of now I am unable to distinguish among them unless I specify a major and minor value.
Here is the screenshot of the App I am using to configure the iBeacons (there are no other fields that I can configure):
I wonder if within the blue tooth signal there is some sort of unique identifier that identifies each hardware.