5

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

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

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

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

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

4

1 回答 1

4

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

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

于 2013-09-23T20:58:02.467 回答