iOS - Corebluetooth连接到外围设备有时什么都不做

时间:2016-12-10 04:11:37

标签: ios bluetooth connect

我目前遇到蓝牙重新连接问题。我正在编写一个使用BLE设备(HID设备)解锁摩托车的应用程序。我希望应用程序在进入范围后立即重新连接到设备。

应用程序的流程:

  • 扫描并与设备绑定
  • 与设备通讯
  • 当设备超出范围时,请调用centralManager.connect()。
  • 等待调用didConnect或didFailToConnect。

大多数情况下,它运行良好,但有些情况下应用程序永远不会获得didConnect或didFailToConnect,重新连接到设备的唯一方法是杀死应用程序并再次打开它。(所以它不是一个硬件问题,它与android)完美配合

我的所作所为:

  • 强烈提及所有外围设备。
  • 将所有外围设备的代理设置为我们的单件蓝牙管理器
  • 每次只能连接一台设备
  • 第一次连接始终有效,但随后无法重新连接
  • CentralManager正在运行自定义队列:

    dispatch_queue_t queue = dispatch_queue_create("com.ble.queue", 0); centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:queue options:options];

在didDisconnect中,我重新连接到设备

(void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(nullable NSError *)error
{
    [centralManager connectPeripheral:peripheral options:nil];
}

我有什么办法可以解决它吗?

0 个答案:

没有答案