我已经开发了一种可穿戴设备,它使用BLE技术连接其他BLE设备。我也从可穿戴设备方面成功地实现了ANCS。
这里的问题陈述是:
我没有使用苹果的MFI程序。当我第一次扫描设备时,它会根据服务ID被发现。成功连接后,ANCS建立并请求配对请求,该请求在应用程序中可见。
如果可穿戴设备不知何故断开连接,用户手动打开它。设备将从外部蓝牙设置屏幕自动连接。这导致了一个问题,我无法从应用程序本身扫描设备,因为它从外部连接,因此广告数据包停止传播。因为我不能扫描手表,所以我不能连接它。
我必须手动取消配对,然后该设备将出现在扫描列表中。
有什么方法可以让我知道设备是从外部连接到我的应用程序内部的吗?
如果是,请让我知道,如果不是,那么请建议一些替代解决方案,因为我必须一次又一次地解除配对,从应用程序扫描它。
在过去的10天里,我一直被这个问题困扰着。
请提供解决方案。任何帮助都是非常感谢的。
谢谢
发布于 2016-04-02 15:06:30
当你尝试扫描你的应用中的外围设备时,你应该在扫描之前先使用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文档中描述的The best practice for connect a peripheral:

https://stackoverflow.com/questions/28538687
复制相似问题