iphone - 如何在通信挂起后重启 iPhone/iPad Bluetooth LE

标签 iphone ios core-bluetooth

在两个 iOS 设备 (iPad-mini) 之间的通信停止后,完全重启 iOS 蓝牙 BTLE 中央和外围管理器的最佳方法是什么?

有时几分钟后,我的 BTLE 通信停止(中央无法从外围设备获得响应,尽管每个设备的调试输出显示应用程序仍在运行并且中央应用程序仍在尝试扫描外围设备,并且外围设备仍在广告),并且不会重新开始: 停止扫描和停止广告后,comm仍然不起作用; 重新打开应用程序后,通信仍然不起作用(!); 电源循环后,iPad 的通信再次工作,但几分钟后就消失了。

因此,我正在做的事情可能是破坏 iOS 核心蓝牙软件。

有时会有来自底层 BTLE 层的错误消息。

背景: 该系统中的每个 iPad 交替作为中心,向其他人读取/写入数据,然后作为外围设备,供其他人读取。绝不会同时发生,并且在转换之间有 1 秒的延迟。

最佳答案

蓝牙堆栈并不是 iOS 中最强大的部分。这在 iOS7 中可能有所改进,但问题一直存在。您很可能正在对系统施加压力,以便更频繁地发生这种挂起。您应该创建错误报告并将其发送给 Apple。或者创建一个 TSI,作为开发人员,您每年都有两个。他们是唯一可以为此做点什么的人。

要解决此问题,重启应用程序通常会有所帮助,但有时需要打开/关闭蓝牙,或者最坏的情况是设备需要重启。不幸的是,没有任何编程方式可以做到这些。

关于iphone - 如何在通信挂起后重启 iPhone/iPad Bluetooth LE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18404085/

相关文章:

ios - 从后台 URLSession 帖子中获取响应

iphone - 如何使用 UIScrollView 创建顶部淡入淡出效果?

c# - 使用.Net Framework 进行AES 文件加密并使用IOS 进行解密

iphone - 一个 UIViewController 中的两个 UITableView

iOS navigationItem.rightBarButtonItem 没有响应它的选择器

ios - 带有蓝牙 2.1 的核心蓝牙

iphone - 以编程方式在 iPhone 上激活 VPN

ios - 在启动时显示的 UIDocumentBrowserViewController 之前呈现一个 View Controller

ios - 将 Bluetooth® 2.1 + EDR class 2 设备与 iOS 应用程序连接

visual-c++ - 无需 key 的蓝牙配对