【问题标题】:iOS 6 - Bluetooth LE disconnectiOS 6 - 蓝牙 LE 断开连接
【发布时间】:2012-10-09 03:37:14
【问题描述】:

好的,iOS6 到底是怎么回事,它如何处理蓝牙 LE 断开连接?之前设备会立即断开连接,但现在,出于某种奇怪的原因,设备会等待断开连接约 30-60 秒。我需要它来断开 ASAFP!

我一直在互联网上搜索,试图弄清楚如何立即断开与外围设备的连接,我发现 this nifty email 解释了一种解决方法是取消订阅有关服务特征的通知。

现在我想我正在这样做.. 当我想断开连接时,我会致电 [connected_device setNotifyValue:NO forCharacteristic:connected_characteristic]

然后,在 didUpdateNotificationStateForCharacteristic 函数中,我有...

if((int)characteristic.isNotifying == 0){
   [manager cancelPeripheralConnection:peripheral];
}

在函数 didDisconnectPeripheral...

connected_peripheral = nil;
connected_characteristic = nil;
[connected_peripheral release];
[connected_characteristic release];

我还仔细研究了 Apple 的 CoreBluetooth Temperature Sensor 示例,但它并没有太大帮助....

对此的任何帮助都会很棒!我只是不知道我错过了什么.....

更新:看起来应用程序需要连接到蓝牙设备至少一分钟才能允许断开连接。如果应用程序连接超过一分钟,它会在发送命令时立即断开连接。否则,它将等到那一分钟标记才真正断开连接。

更新:当我尝试在一分钟之前断开连接时,当设备实际断开连接时,我会在日志中得到以下输出。

Oct 24 16:49:35 Christophers-iPhone awdd[8168] <Error>: libMobileGestalt copySystemVersionDictionaryValue: Could not lookup ReleaseType from system version dictionary
Oct 24 16:49:35 Christophers-iPhone awdd[8168] <Error>: CoreLocation: CLClient is deprecated. Will be obsolete soon.

【问题讨论】:

    标签: ios6 core-bluetooth disconnect bluetooth-lowenergy


    【解决方案1】:

    根据 Apple 的说法,这项新功能是“设计使然”。 我们解决此问题的方法是向外围设备发送命令并使其与末端断开连接。如果你这样做,那么断开是立即的。我不知道为什么 Apple 将这种行为从 iOS5 更改为 iOS6,但他们一定有他们的理由。当然,此解决方案仅在您可以访问外围固件并且可以更改它的情况下才有效。如果有不同的解决方案,那么我们还没有找到它。

    【讨论】:

    • 我在外围设备上做了[self.peripheralManager stopAdvertising][self.peripheralManager removeAllServices],但它仍然没有立即断开连接。在 60 秒标记之前,我仍然在右上角看到一个白色填充的蓝牙图标...
    • “根据苹果”?这个(官方?)声明在哪里?
    • 只是想确认向 BLE 设备发出断开连接的命令解决了我们遇到的问题。
    • 我在 ios 9.1 上仍然遇到这个问题 - 这个问题有什么新的解决方案吗?
    【解决方案2】:

    这是 iOS 6.0 中的一个错误,在 6.1 中已修复。

    【讨论】:

    • 不,它在 iOS7 中不存在。检查您的设备端。
    • 即使我在 didConnect 中取消连接也有 10 秒。延迟直到物理链路断开。然而,该应用程序认为自己已断开连接,它只是在连接最终断开(10 秒后)之前不会从外围设备接收任何数据。文档甚至声称不能保证物理链接会在 cancelConnection 上被切断。
    • 我记得,设备将断开连接消息发送回集线器。也许你的设备做的没那么快。
    • 我使用过许多 BLE 设备:HRM、自行车传感器、遥控钥匙 - 在 iOS7 上一切都按预期断开。
    • 感谢您的意见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    相关资源
    最近更新 更多