如何停止检测具有相同主要和次要的iBeacons?
阐释:
1.配置两个具有相同UUID,Major,Minor
的iBeacons2.在范围内我得到两个信标检测
3但是我只需要检测一个(如果他们使用相同的UUID_Major_Minor)
4.有没有办法避免相同的信标检测
提前感谢..
答案 0 :(得分:0)
主要和次要值是分配给您的iBeacons的数字,以便比单独使用UUID更准确地识别它们。
次要和主要是无符号整数值。
iBeacon标准要求分配Major和Minor值。
主要值旨在识别和区分组 - 例如,您所在场地的特定楼层或房间中的所有信标都可以分配唯一的主要值。
次要值旨在识别和区分个人 - 例如,区分分配了主要值的信标组中的各个信标。
您没有为iBeacons分配相同的主要和次要值。从技术上讲,您根本不需要分配这些值(尽管它们都是Apple的iBeacon标准的一部分) - 但是它们对于识别,组织和跟踪iBeacons非常有用。如果您希望iBeacons提供独特的内容,那么他们需要有一个唯一的ID来区分它们。
有关详情:https://support.kontakt.io/hc/en-gb/articles/201620741-iBeacon-Parameters-UUID-Major-and-Minor
-(void)locationManager:(CLLocationManager*)manager
didRangeBeacons:(NSArray*)beacons
inRegion:(CLBeaconRegion*)region
{
// Beacon found!
CLBeacon *foundBeacon = [beacons firstObject];
// You can retrieve the beacon data from its properties
NSString *uuid = foundBeacon.proximityUUID.UUIDString;
NSString *major = [NSString stringWithFormat:@"%@", foundBeacon.major];
NSString *minor = [NSString stringWithFormat:@"%@", foundBeacon.minor];
switch (foundBeacon.proximity) {
case CLProximityUnknown:
//Unknown
break;
case CLProximityFar:
//Far
break;
case CLProximityNear:
//Near
break;
case CLProximityImmediate:
default:
//default
break;
}
if (foundBeacon.proximity != self.previousProximity) {
//check if last foundBeacon.proximity is equal or not
self.previousProximity = foundBeacon.proximity;
}
}