如何获得Bluecates信标的Beacon接近度

时间:2015-03-12 08:55:14

标签: ios objective-c iphone ibeacon proximity

我有Bluecats Starter Pack,我希望使用didRangeBeacons方法获得信标接近,但它不会调用,所以如何调用该方法来获取信标接近度和信标信息

这是我的代码

- (BCMicroLocationManager *)microLocationManager
    {
        if (!_microLocationManager) {
          //  _microLocationManager = [BCMicroLocationManager sharedManager];

            _microLocationManager = [[BCMicroLocationManager alloc] init];
       _microLocationManager.delegate = self;

        }
        return _microLocationManager;
    }

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(microLocationManagerDidEnterSiteNotification:)
                                                     name:BCMicroLocationManagerDidEnterSite
                                                   object:nil];

        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(microLocationManagerDidExitSiteNotification:)
                                                     name:BCMicroLocationManagerDidExitSite
                                                   object:nil];

    }


    - (void)microLocationManagerDidEnterSiteNotification:(NSNotification *)notification
    {
        BCSite *site = [notification.userInfo objectForKey:BCMicroLocationManagerNotificationSiteItem];
    }

    - (void)microLocationManagerDidExitSiteNotification:(NSNotification *)notification
    {
        BCSite *site = [notification.userInfo objectForKey:BCMicroLocationManagerNotificationSiteItem];
    }

    - (void)microLocationManager:(BCMicroLocationManager *)microLocationManger didUpdateNearbySites:(NSArray *)sites
    {
        [self refreshNearbySites];
    }

    - (void)microLocationManager:(BCMicroLocationManager *)microLocationManger didEnterSite:(BCSite *)site
    {
        [self determinedState:BCSiteStateInside forSite:site];
    }

    - (void)microLocationManager:(BCMicroLocationManager *)microLocationManger didExitSite:(BCSite *)site
    {
        [self determinedState:BCSiteStateOutside forSite:site];
    }

    - (void)microLocationManager:(BCMicroLocationManager *)microLocationManger didDetermineState:(BCSiteState)state forSite:(BCSite *)site
    {
        [self determinedState:state forSite:site];
    }

    - (void)microLocationManager:(BCMicroLocationManager *)microLocationManger didRangeBeacons:(NSArray *)beacons inSite:(BCSite *)site
    {
    }

    - (void)microLocationManager:(BCMicroLocationManager *)microLocationManger didUpdateMicroLocations:(NSArray *)microLocations
    {
        BCMicroLocation *microLocation = [microLocations lastObject];
    }
    - (void)requestStateForNearbySites
    {
        NSOrderedSet *nearbySites = self.microLocationManager.nearbySites;

        for (BCSite *site in nearbySites) {
            [self.microLocationManager requestStateForSite:site];
        }
    }

等待回复。

提前致谢。

1 个答案:

答案 0 :(得分:0)

当信标进入网站时开始测距。因此,在方法microLocationManagerDidEnterSiteNotification中,您必须开始像

那样的范围
    - (void)microLocationManagerDidEnterSiteNotification:(NSNotification *)notification
    {

        BCSite *site = [notification.userInfo objectForKey:BCMicroLocationManagerNotificationSiteItem];
        [[BCMicroLocationManager sharedManager] startRangingBeaconsInSite:site];
    }