gpt4 book ai didi

重新连接时 iPhone 无法发现蓝牙 LE 标签上的服务

转载 作者:行者123 更新时间:2023-12-03 18:31:11 24 4
gpt4 key购买 nike

我正在开发适用于 iOS 的蓝牙 LE 应用程序。我使用 iOS 中的核心蓝牙框架来处理所有通信。

问题和描述:

当我使用单个标签时,尽管有多次连接和断开连接,单个标签仍可以无缝连接,并且手机会发现它的服务。

此外,当多个蓝牙 LE 标签首次连接时,它们会无缝连接,并且手机会发现它们的服务。

当标签断开连接然后重新连接到手机时,标签连接良好。但这两个标签之一(任一者)似乎并没有宣传其服务。即,当应用程序打开且标签重新连接时,DiscoverServices 方法不会调用 didDiscoverServices 委托(delegate)。

为什么只有在与多个设备连接时才会发生这种情况。

我已正确设置peripheral.delegate。我已经尝试了一切,包括重复重新连接、重复对标签进行 DiscoverServices 调用。似乎没有任何作用。

如何将多个标签重新连接到手机并仍然发现所有服务。

请帮忙

谢谢,
馒头

最佳答案

我遇到了同样的问题,但意识到在调用 didConnectPeripheral 后我没有将 delegate 设置为 CBPeripheral

- (void) centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral
{
NSLog(@"Peripheral Connected: %@", peripheral.name);

peripheral.delegate = self;

if (peripheral.services) {
[self peripheral:peripheral didDiscoverServices:nil];
} else {
[peripheral discoverServices:@[[CBUUID UUIDWithString:CUSTOM_UUID]]];
}
}

关于重新连接时 iPhone 无法发现蓝牙 LE 标签上的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12004623/

24 4 0