【问题标题】:iOS CoreBluetooth suddenly in CBManagerStateResetting stateiOS CoreBluetooth 突然处于 CBManagerStateResetting 状态
【发布时间】:2017-11-15 12:32:48
【问题描述】:

问题:

最近,我经常在 CBPeripheralManager 中获得 CBManagerStateResetting 状态。获得 CBManagerStateResetting 状态后,CBManagerStatePoweredOn 在 3~5 秒内到来。但是,这不仅会影响应用程序,还会影响对等设备由于链路丢失错误而处于断开状态。

场景:

此问题特别发生在 BLE 中的连续数据交易期间,同时并行使用来自 iPhone 的 3G 数据。

当 CBManagerStateResetting 发生时,对等设备断开连接。现在经常发生这种情况,这很烦人。

我的问题,

  • 为什么在应用程序已经连接到 BLE 设备时出现 CBManagerStateResetting 状态?
  • 可以从 iOS 应用程序端和对等设备端采取哪些步骤来防止此重置问题?

额外信息: CBPeripheralManagerStates如下:

typedef NS_ENUM(NSInteger, CBPeripheralManagerState) {
CBPeripheralManagerStateUnknown = CBManagerStateUnknown,
**CBPeripheralManagerStateResetting = CBManagerStateResetting,**
CBPeripheralManagerStateUnsupported = CBManagerStateUnsupported,
CBPeripheralManagerStateUnauthorized = CBManagerStateUnauthorized,
CBPeripheralManagerStatePoweredOff = CBManagerStatePoweredOff,
CBPeripheralManagerStatePoweredOn = CBManagerStatePoweredOn,
};

【问题讨论】:

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


    【解决方案1】:

    此问题是由于苹果首次发布 iOS 10 时蓝牙堆栈不稳定导致的。在后续更新中,该问题已得到解决。在当前版本中,“CBPeripheralManagerStateResetting”很少出现。

    【讨论】:

      猜你喜欢
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      • 2016-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      相关资源
      最近更新 更多