BLE和ANCS自动连接方案

时间:2015-02-16 09:55:14

标签: ios iphone bluetooth-lowenergy core-bluetooth ancs

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

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

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

我必须手动取消配对,然后设备进入扫描列表。

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

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

过去10天我一直坚持这个问题。

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

由于

1 个答案:

答案 0 :(得分: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];
}
Apple BLE文档中描述的

The best practice for connect a peripheral

best practice for connect a peripheral