2

我开发了一种可穿戴设备,它使用 BLE 技术连接其他顶级 BLE 设备。我也从可穿戴设备方面成功实施了 ANCS。

这里的问题陈述是:
我没有使用 Apple 的 MFI 程序。当我第一次扫描设备时,它会根据服务 ID 被发现。成功连接后,ANCS 建立并请求应用程序中可见的配对请求。

如果可穿戴设备以某种方式断开连接并且用户手动将其打开。设备从外部蓝牙设置屏幕自动连接。这导致了一个问题,我无法从应用程序本身扫描设备,因为它是从外部连接的,因此广告包停止传播。由于我无法扫描手表,因此无法连接它。

我必须手动取消配对,然后设备才会出现在扫描列表中。

有什么方法可以让我知道设备是从我的应用程序内部从外部连接的?

如果是,那么请让我知道,如果不是,那么请为整个场景提出一些替代解决方案,因为我必须一次又一次地取消配对以从应用程序中扫描它。

从过去的 10 天开始,我一直被困在这个问题上。

请提供解决方案。任何帮助表示赞赏。

谢谢

4

1 回答 1

1

当您尝试在您的应用程序中扫描外围设备时,您应该retrieveConnectedPeripheralsWithServices:在扫描前先使用。

这是示例:

NSArray *peripherals = [central retrieveConnectedPeripheralsWithServices:@[serviceUUId]];
if (peripherals.count > 0) {
    CBPeripheral *peripheral = [peripherals firstObject];
    peripheral.delegate = self;
    [central connectPeripheral:peripheral options:nil];
} else {
    [central scanForPeripheralsWithServices:@[serviceUUId] options:nil];
}

苹果BLE文档中描述的连接外围设备的最佳实践:

连接外设的最佳实践

于 2016-04-02T07:06:29.537 回答