gpt4 book ai didi

ios - 扫描特定服务 CBUUID 时找不到外围设备

转载 作者:行者123 更新时间:2023-12-01 23:30:46 26 4
gpt4 key购买 nike

当我使用时:

CBUUID * uuid = [CBUUID UUIDWithString:@"1800"]; // GAP
DEBUG_LOG(@"CBUUID: %@",uuid); // CBUUID: Generic Access Profile
_centralMan = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
[_centralMan scanForPeripheralsWithServices:[NSArray arrayWithObject:uuid]
options:nil];

我找不到我的外设,但当我使用时:

_centralMan = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
[_centralMan scanForPeripheralsWithServices:nil
options:nil];

…它立即显示。

当我连接时,我能够发现/读取/写入我期望的所有服务。我的理解是 GAP 使这成为可能。我也尝试过CBUUID我知道正在运行的其他服务(特别是“1804”,TX 电源服务),但无济于事;扫描从未发现任何东西。

即使服务正在运行(我可以在连接时与它们进行通信),当我扫描时将服务 UUID 数组传递为 nil这个委托(delegate)方法被称为...

-(void) centralManager:(CBCentralManager *)central 
didDiscoverPeripheral:(CBPeripheral *)peripheral
advertisementData:(NSDictionary *)advertisementData
RSSI:(NSNumber *)RSSI {
DEBUG_LOG(@"Found peripheral w/ UUID: %@ RSSI: %@ \n AdvData: %@",peripheral.UUID,RSSI,advertisementData);
DEBUG_LOG(@"Services found: %d",peripheral.services.count);
for (CBService * service in peripheral.services) {
DEBUG_LOG(@"Found service: %@ w/ UUID %@",service, service.UUID);
}
}

…它总是报告“发现服务:0”。我应该期待 services要填充扫描期间找到的服务的数组? (我认为这至少部分可能,基于 scanForPeripheralsWithServices:[NSArray arrayWithObject:uuid]
options:nil
。)

这可能是我的外围设备服务广告的问题吗?我是否错误地使用了 API?非常感谢任何指导! :-)

PS:我对蓝牙很陌生。

PPS:我控制外设的源(它是 CC2540DK)。因此,我可能会相信问题就在那里。

最佳答案

事实证明,我们的外围代码并未像 this Bluetooth spec 那样宣传 UUID .

当我们将它们放入广告包中时,iOS 就毫不费力地把它们捡了起来。

关于ios - 扫描特定服务 CBUUID 时找不到外围设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11216248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com