didDiscoverPeripheral从未打过电话

时间:2014-12-01 17:12:57

标签: ios objective-c core-bluetooth

我有两个设备(ipad 3 and iphone 4s),并试图找到一种方法来识别这两个设备中的一个(为了它们之间的未来交换信息),为此,我在2中使用有源蓝牙设备,并且使用以下代码:

- (void)viewDidLoad {
    [super viewDidLoad];


    CBUUID *otherDevice = [CBUUID UUIDWithString:@"180A"];


    NSDictionary *scanOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:CBCentralManagerScanOptionAllowDuplicatesKey];


    self.mgr = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
    [self.mgr scanForPeripheralsWithServices:[NSArray arrayWithObject:otherDevice] options:scanOptions];

}

#pragma mark - delegates

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI {


    NSLog(@"I found new devices ->  %@",[NSString stringWithFormat:@"%@",[advertisementData description]]);
}

-(void)centralManager:(CBCentralManager *)central didRetrievePeripherals:(NSArray *)peripherals{
    NSLog(@"This is it!");
}


- (void)centralManagerDidUpdateState:(CBCentralManager *)central{
    NSString *messtoshow;

    switch (central.state) {
        case CBCentralManagerStatePoweredOn:
        {
            messtoshow=[NSString stringWithFormat:@"Bluetooth is currently powered on and available to use."];
            [self.mgr scanForPeripheralsWithServices:nil options:nil];
            break;
        }   

    }
    NSLog(@"%@",messtoshow);
}

此代码的问题在于我在控制台上收到蓝牙处于活动状态的消息,但方法'didDiscoverPeripheral:'未被调用,为什么会发生这种情况? (因为两台设备上的蓝牙都处于活动状态)?

0 个答案:

没有答案