【发布时间】:2014-11-15 13:04:09
【问题描述】:
我的应用使用 BLE(蓝牙 4)连接到物理外围设备。 我和我的用户反复遇到一个错误,有时应用程序停止连接到外围设备 - 您可以看到发现 BLE 外围设备并建立连接的指示,但几秒钟后,连接断开.
只有重启iDevice后才会恢复正常。
我已经做了很长时间的检查工作并彻底研究了这个问题,直到我得出结论,这一定是 iOS 中的一个错误(在 7.1 上测试过,但也可能在 8.0 上发生)。
我的测试和发现:
- 每个支持 iDevice 的 BLE 都会发生。
- 发生在我自己的 BLE 外围设备和其他 3rd 方 BLE 产品中,已知两者在正常情况下都能完美运行。
- 有时甚至可以运行 50 次,但最终会失败。
- 网络和出厂设置重置没有帮助。
- 在各种应用程序中测试并发生:##
- 我自己的应用程序。
- 清理仅扫描外围设备并尝试连接到第一个也是唯一发现的外围设备的新 Xcode 项目。
- Apple 的 BLE 示例应用程序:Health Thermometer(进行了相关修改,因为我没有这个特定的外围设备)。
- 第三方应用,包括通用的LightBlue。
- 重要提示:上述每个选项都曾在一段时间内完美运行(多次启动),但在某些时候突然停止,然后在重新启动设备后再次运行。
- 尝试发现外围设备的服务时,连接过程似乎失败 - 即它被正常发现和连接,但在启动服务发现时,它停止响应(未调用 didDiscoverServices)。
- 我当然尝试了很多在网上找到的方法,但都没有成功。
谁能解释一下这个问题?
- 这是一个已知问题吗?
- 在最近的 iOS 更新中修复了吗?
- 会修复吗?
您可以想象此类问题对我的用户体验的负面影响,因为 BLE 连接对产品至关重要。
感谢您对如何解决问题的建议和建议。
谢谢!
更新:
Apple 回复了我的技术支持请求:
底线:
- 他们说他们已经修复了 iOS 8 中一些与 BLE 相关的错误,并敦促我们测试它是否仍然在 iOS 8 中发生。
- 他们说要从这个开始,如果没有,请尝试使用他们提供的实用程序来诊断问题。
到目前为止,iOS 8 还没有发生这种情况,但另一方面,我可以看到有关 other Bluetooth issues 的帖子,这些帖子是 not necessarily related,但谁知道呢。
完整答案:
我正在回应您的发现,即您和您的客户发现 使用一段时间后,iOS BLE 无法保持连接。你 表明问题是在 iOS 7.1 中发现的。有过 已报告并已修复的有关 iOS BLE 的问题 使用 iOS 8.0。为了最好地确定您的问题是否已得到解决, 当然,最简单的方法是安装 iOS 8 并查看是否 这个问题可以复制。但是,正如您报告的那样,您可以 首先使用 iOS 7.1 在您的设备上复制问题 将是获取蓝牙服务器配置文件,将其安装到您的 deivce,复制问题,然后在 出现问题。配置文件将使 BLE 服务器报告额外的 记录详细信息,有助于报告服务器的问题 遭遇。我们可以查看问题是否是已报告的问题 之前。需要考虑的是,对于所有新的错误报告 问题,核心蓝牙工程要求所有问题 使用当前发布的 iOS 版本 - 即 8.0。 对于使用 iOS 7.x 的客户,将不再有 iOS 7 更新 - 全部 软件修复和错误修复将在 iOS 8 中提供。因此,只有 将调查 iOS 8 报告的问题。你可以 从 Apple Developer 错误报告网站获取 BLE 服务器配置文件 页面https://developer.apple.com/bug-reporting/ios/bluetooth/。这 安装配置文件和捕获日志的说明是 呈现在网页上。如果您使用 iOS 7.x 捕获日志,您可以 发给我审核。然而,这将是一个 学术练习 - 了解 iOS 是否解决了问题,或者是否解决了问题 仍然存在,我们将需要查看问题是否出现在 iOS 8 下。 请记住,一旦您将设备更新到 iOS 8,您将 无法将其恢复到以前的版本。我很高兴 查看您的结果。但是,如果问题在 iOS 8 下仍然存在, 最好提交错误报告以获得核心蓝牙工程的 关注这个问题。您可以使用 Apple 提交错误报告 开发人员错误报告网页。 - http://bugreport.apple.com
【问题讨论】:
-
我在 7.1 上遇到了一些类似这样的行为,但是在 iOS 8 中,使用实现串行端口接口的模块时,我会更频繁地遇到这种情况,除了重启设备也不会现在似乎没有帮助,并且出现在该模块的演示应用程序以及我们的应用程序和 LightBlue 中。我不确定这是否与您遇到的问题有关。发生这种情况时,我仍然可以使用 LightBlue 连接到 Fitbit 等其他设备,因此它不会影响所有设备。
-
这里已经讨论过这个问题:在一分钟前还可以正常工作时,由于未知原因无法搜索服务,您可能会找到一些答案。我不止一次面对它,我无法避免它,除了打开/关闭我的 iDevice、BLE 设备甚至重置 BLE 设备。
标签: ios objective-c bluetooth-lowenergy core-bluetooth ios-bluetooth