【问题标题】:How to stop iBeacon Detection with same major and minor?如何以相同的主要和次要停止 iBeacon 检测?
【发布时间】:2017-05-25 21:09:47
【问题描述】:

如何停止检测具有相同主要和次要的 estimote iBeacons?

说明:

1.配置两个iBeacon,UUID、Major、Minor相同

2.在范围内我得到两个信标检测

3 但我只需要一个检测(如果它们具有相同的 UUID_Major_Minor)

4.有什么办法可以避免相同的信标检测

提前谢谢..

【问题讨论】:

    标签: ios objective-c swift ios7 ibeacon


    【解决方案1】:

    MajorMinor 值是分配给 iBeacon 的数字,以便比单独使用 UUID 更准确地识别它们。

    MinorMajor 是无符号整数值。

    iBeacon 标准要求同时分配 Major 和 Minor 值。


    主要值旨在识别和区分一个 - 例如,您场地中某个楼层或房间的所有信标都可以分配一个唯一的主要值。

    次要值旨在识别和区分个体——例如区分一组信标中分配有主要值的各个信标。

    您没有为 iBeacon 分配相同的 MajorMinor 值。从技术上讲,您根本不需要分配这些值(尽管它们都是 Apple 的 iBeacon 标准的一部分)——但是它们对于识别、组织和跟踪 iBeacon 到更精细的级别非常有用。如果您希望您的 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;
        }
    }
    

    【讨论】:

    • 是的,我理解你的观点,但我需要知道 didRangeBeacons 中的检测是否避免了冗余。
    • 所以我认为您可以使用 proximity 进行检查。代码更新,检查一次。
    • Proximity 仅显示信标所在的范围。它不会避免检测中的冗余。
    • 当它与相同的信标次要值匹配时,您可以停止信标检测。但是,我认为它不会解决你的问题。你不能以编程方式停止信标设备,我希望如此。只有您可以通过在相同时停止信标检测并在需要时启动来做到这一点。
    猜你喜欢
    • 1970-01-01
    • 2015-10-05
    • 2015-08-29
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    相关资源
    最近更新 更多