我开发了一种可穿戴设备,它使用 BLE 技术连接其他顶级 BLE 设备。我也从可穿戴设备方面成功实现了 ANCS。
这里的问题陈述是:
我没有使用 Apple 的 MFI 计划。
当我第一次扫描设备时,它会根据服务 ID 被发现。连接成功后,ANCS 建立并请求应用中可见的配对请求。
如果可穿戴设备以某种方式断开连接并且用户手动将其打开。设备从外部蓝牙设置屏幕自动连接。这导致了一个问题,我无法从应用程序本身扫描设备,因为它是从外部连接的,因此广告包停止传播。由于无法扫描 watch ,因此无法连接。
我必须手动取消配对,然后设备才会进入扫描列表。
有什么方法可以让我知道设备是从我的应用程序内部从外部连接的吗?
如果是,那么请告诉我,如果不是,那么请为整个场景提出一些替代解决方案,因为我必须一次又一次地取消配对才能从应用程序中扫描它。
在过去的 10 天里,我一直被这个问题困扰。
请提供解决方案。任何帮助表示赞赏。
谢谢
Best Answer-推荐答案 strong>
当您尝试扫描应用中的外设时,应在扫描前先使用 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];
}
The best practice for connect a peripheral苹果BLE文档中描述:
关于ios - BLE和ANCS自动连接场景,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/28538687/
|