Estimote iBeacons未检测到

时间:2014-06-02 10:25:42

标签: ios objective-c ibeacon estimote

我最近购买了estimote,我看过很多演示,但无法检测到设备。

这是我的代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self
                                                                     queue:nil
                                                                   options:nil];


    //Set location managaer delegate
    self.locationManager = [[CLLocationManager alloc] init];
    self.locationManager.delegate = self;


   NSUUID* uuid = [[NSUUID alloc] initWithUUIDString:@"B9407F30-F5F8-466E-AFF9-25556B57FE6D"];

    // Setup a new region with that UUID and same identifier as the broadcasting beacon
    self.beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid identifier:@"testRegion"];
    self.beaconRegion.notifyEntryStateOnDisplay = YES;
    self.beaconRegion.notifyOnEntry = YES;
    self.beaconRegion.notifyOnExit = YES;
 [self.locationManager startMonitoringForRegion:self.beaconRegion];
[self.locationManager startRangingBeaconsInRegion:self.beaconRegion];
    // Do any additional setup after loading the view, typically from a nib.
}

//委托方法返回区域状态UNKNOWN !!!

-(void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region
{

    switch (state) {
        case CLRegionStateInside:
            currentBeconRegion = (CLBeaconRegion *)region;
            [self.locationManager startRangingBeaconsInRegion:currentBeconRegion];
            NSLog(@"INSIDE the Region");
            break;
        case CLRegionStateOutside:
            NSLog(@"OUTSIDE the Region");
            break;
        case CLRegionStateUnknown:
        default:
            NSLog(@"Region state UNKNOWN!!!");
            [self.locationManager stopRangingBeaconsInRegion:self.beaconRegion];
            break;
    }
}

//输入地区

    -(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
    //check if we're ranging the correct beacon
    if (![self.beaconRegion isEqual:region]) { return;}

    NSLog(@"didEnterRegion");
    if([region isKindOfClass:[CLBeaconRegion class]])
    {
        currentBeconRegion = (CLBeaconRegion *)region;
        if ([beaconRegion.identifier isEqualToString:@"testRegion"])
        {

            //send local notificaation
            UILocalNotification *notice = [[UILocalNotification alloc] init];
            notice.alertBody = @"Becoan Found!!!";
            notice.alertAction =@"View";
            [[UIApplication sharedApplication] presentLocalNotificationNow:notice];

            //srart raning beacon region
            [self.locationManager startRangingBeaconsInRegion:currentBeconRegion];


        }
    }

}

我缺少什么?我该如何更改ProximityUUID。

1 个答案:

答案 0 :(得分:1)

只需在viewDidLoad方法的底部再添加一行:

 [self.locationManager startMonitoringBeaconsInRegion:self.beacon region];