iOS Core Bluetooth:在外围设备上未发现广告服务
发布时间:2020-12-14 19:03:54 所属栏目:百科 来源:网络整理
导读:在连接到广告我感兴趣的特定服务的BLE设备之后,为了发现这项服务,我打电话给: [self.peripheral discoverServices:@[[self.class serviceUUID]]]; – (void)外设:(CBPeripheral *)外设didDiscoverServices:(NSError *)错误委托方法被调用而没有错误,但是
在连接到广告我感兴趣的特定服务的BLE设备之后,为了发现这项服务,我打电话给:
[self.peripheral discoverServices:@[[self.class serviceUUID]]]; – (void)外设:(CBPeripheral *)外设didDiscoverServices:(NSError *)错误委托方法被调用而没有错误,但是为外设返回的服务数是0,因此没有进一步发现特征.有谁知道为什么会这样?提前致谢! 以下是委托方法的完整主体. - (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error { if (error) { NSLog(@"didDiscoverServices failed: %@",error); return; } NSLog(@"didDiscoverServices succeeded for peripheral: %@.",peripheral.name); NSLog(@"Number of services: %d",peripheral.services.count); for (CBService *s in peripheral.services) { NSLog (@"Discovered service UUID: %@",s.UUID); if ([s.UUID isEqual:[self.class serviceUUID]]) { NSLog(@"Discover characteristics..."); [self.peripheral discoverCharacteristics:@[[self.class controlPointCharacteristicUUID],[self.class packetCharacteristicUUID]] forService:s]; } } } 控制台显示: 2014-11-27 15:54:51.933 k[197:13362] didDiscoverServices succeeded for peripheral: BootK 2014-11-27 15:54:51.934 k[197:13362] Number of services: 0 解决方法
我唯一能想到的是[self.class serviceUUID]与您正在寻找的服务的UUID不匹配.当您启动扫描时,是否按服务UUID进行过滤?
[self.centralManager scanForPeripheralsWithServices:[self.class serviceUUID] options:nil]; 如果没有,这可以解释为什么您能够发现并连接到它,但不能发现该特定服务. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |