iOS直接扫描服务ID不起作用的CBUUID

时间:2017-07-12 03:14:23

标签: ios bluetooth-lowenergy

我尝试连接我的BLE设备,

但是当我指示BLE设备CBUUID时,它无法发现,

当我设置scanForPeripheralsWithServices:nil时,它可以发现所有外设和connectPeripheral的成功。

为什么我指示scanForPeripheralsWithServices:uuidArray,它总是不输入以下方法。

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

我指示CBUUID如下:

 - (void) centralManagerDidUpdateState:(CBCentralManager *)central{

if( central.state != CBCentralManagerStatePoweredOn){
    NSLog(@"ble not turn on ");
    return;
}

   NSArray *uuidArray= [NSArray arrayWithObjects:[CBUUID UUIDWithString:@"ABC0"],[CBUUID UUIDWithString:@"27240EA9-D950-4356-A347-DEAAAB8217F6"],nil];

  [self.centralManager scanForPeripheralsWithServices:uuidArray options:@{ CBCentralManagerScanOptionAllowDuplicatesKey : @YES }];

 }

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

   NSLog(@"Discovered %@ at %@ of identifier %@", peripheral.name, RSSI,peripheral.identifier);


if (self.connectPeripheral != peripheral) {

    self.connectPeripheral = peripheral;
    [self.centralManager connectPeripheral:peripheral options:nil];
}

 }

 ...

我使用“浅蓝色”app跟踪外围信息如下,有谁能告诉我有什么问题?非常感谢你。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

在LightBlue中显示有关“广告数据”的更多信息。在那里你可以看到在广告包中做广告的服务uuid​​。你必须扫描这个uuid的。您无法扫描其他服务,因为在连接外围设备之前它们是未知的。