我尝试连接我的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跟踪外围信息如下,有谁能告诉我有什么问题?非常感谢你。
答案 0 :(得分:0)
在LightBlue中显示有关“广告数据”的更多信息。在那里你可以看到在广告包中做广告的服务uuid。你必须扫描这个uuid的。您无法扫描其他服务,因为在连接外围设备之前它们是未知的。