Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在连接后立即断开连接,只有重新启动设备才有帮助_Ios_Objective C_Bluetooth Lowenergy_Core Bluetooth_Ios Bluetooth - Fatal编程技术网

Ios 在连接后立即断开连接,只有重新启动设备才有帮助

Ios 在连接后立即断开连接,只有重新启动设备才有帮助,ios,objective-c,bluetooth-lowenergy,core-bluetooth,ios-bluetooth,Ios,Objective C,Bluetooth Lowenergy,Core Bluetooth,Ios Bluetooth,我的应用程序使用BLE(蓝牙4)连接到物理外围设备。 我和我的用户反复遇到一个错误,在某个时候,应用程序停止连接到外围设备-你可以看到一个迹象,表明BLE外围设备被发现并建立了连接,但几秒钟后,连接被中断 只有重新启动iDevice后,情况才会恢复正常 我已经做了很长时间的检查,并彻底研究了这个问题,直到我得出结论,这一定是iOS中的一个bug(用7.1测试过,但可能也发生在8.0上) 我的测试和发现: 与每个支持iDevice的BLE一起发生 发生在我自己的BLE外围设备和其他第三方BLE产

我的应用程序使用BLE(蓝牙4)连接到物理外围设备。 我和我的用户反复遇到一个错误,在某个时候,应用程序停止连接到外围设备-你可以看到一个迹象,表明BLE外围设备被发现并建立了连接,但几秒钟后,连接被中断

只有重新启动iDevice后,情况才会恢复正常

我已经做了很长时间的检查,并彻底研究了这个问题,直到我得出结论,这一定是iOS中的一个bug(用7.1测试过,但可能也发生在8.0上)

我的测试和发现:
  • 与每个支持iDevice的BLE一起发生
  • 发生在我自己的BLE外围设备和其他第三方BLE产品上,这两种产品在正常情况下都能正常工作
  • 它有时甚至可以在50次发射中正常工作,但最终会失败
  • 网络和出厂设置重置没有帮助
  • 在各种应用中测试和出现:##
    • 我自己的应用程序
    • 清理新的Xcode项目,该项目只扫描外设并尝试连接到第一个也是唯一发现的外设
    • 苹果的BLE示例应用程序:(由于我没有这个特殊的外设,所以进行了相关修改)
    • 第三方应用程序,包括通用应用程序
    • 重要提示:上面的每一个选项在一段时间内(多次启动)都能正常工作,在某个时候突然停止,然后在重新启动设备后再次工作
  • 当试图发现外围设备的服务时,连接过程似乎失败了,即它被发现并正常连接,但当启动服务发现时,它停止响应(不调用DidDiscoversServices)
  • 我当然尝试过很多在网上找到的方法,但都没有成功
有人能解释一下这个问题吗?
  • 这是一个已知的问题吗
  • 它在最近的iOS更新中被修复了吗
  • 会修好吗
您可以想象这样一个问题对我的用户体验产生的负面影响,因为可扩展连接对产品至关重要

我将感谢你对如何解决这个问题的建议

谢谢

更新: 苹果回应了我的技术支持请求:

底线:

  • 他们说,他们已经修复了iOS 8中一些与BLE相关的bug,并敦促我们测试它是否仍在iOS 8中发生
  • 他们说从这个开始,如果没有,试着用他们提供的实用程序来诊断问题
到目前为止,对于我来说,iOS 8并没有出现这种情况,但另一方面,我可以看到关于iOS 8的帖子,但谁知道呢

完整答案:

我是在回应你和你的客户发现的 在某个使用点之后,iOS BLE无法维持连接。你 表明问题是通过iOS 7.1识别的。有 已报告并已修复的有关iOS BLE的问题 使用iOS 8.0。为了最好地确定您的问题是否已得到解决, 当然,最简单的方法是安装iOS 8,看看是否 这个问题可以复制。但是,正如您所报告的,您可以 首先,用iOS 7.1在您的设备上复制问题 要获取蓝牙服务器配置文件,请将其安装到您的 deivce,复制问题,然后在 问题出现了。配置文件将包含BLE服务器报告附加内容 日志记录详细信息,有助于报告服务器遇到的问题 遭遇战。我们可以看到这个问题是否已经被报道过 以前。要考虑的是,所有新的bug报告 核心蓝牙工程部要求解决所有问题 回归到当前发布的iOS版本-即8.0。 对于使用iOS 7.x的客户,将不再有iOS 7更新-全部 iOS 8将提供软件修复和bug修复。仅出于这个原因 将调查iOS 8报告的问题。你可以 从Apple Developer bug report web获取BLE服务器配置文件 页这个 有关安装配置文件和捕获日志的说明如下 在网页上显示。如果您使用iOS 7.x捕获日志,您可以 把它寄给我审阅。然而,这将是一个有点困难的问题 学术练习-了解iOS是否解决了这个问题,或者 如果问题仍然存在,我们需要查看问题是否发生在iOS 8下。 记住,一旦你将设备更新到iOS 8,你将 无法将其还原到以前的版本。我很乐意 回顾你的结果。但是,如果问题在iOS 8下仍然存在, 最好提交一份bug报告,以获得核心蓝牙工程的支持 请注意这件事。您可以使用Apple提交错误报告 开发者错误报告网页。-


因此,问题似乎在最近的iOS更新(8.0或8.1)中得到了解决。

我在7.1上有过类似的行为,但在iOS 8中,我在实现串行端口接口的模块中得到的频率更高,除此之外,重新启动设备现在似乎也没有帮助,并且与该模块的演示应用程序以及我们的应用程序和LightBlue一起出现。我不确定这是否与您遇到的问题有关。当这种情况发生时,我仍然可以使用LightBlue连接到其他设备,如Fitbit,因此它不会影响所有设备。这里已经讨论过这个问题:当一分钟前它工作正常时,由于未知原因无法搜索服务,您可能会找到一些答案。我不止一次地面对它,我无法避免它,除非打开/关闭我的iDevice、BLE设备,甚至重置BLE设备。