- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用外部附件框架。我在应用程序进入后台然后返回前台后重新建立 EASession 时遇到问题。如果我终止我的应用程序并重新启动,那么蓝牙连接将按照人们的预期重新建立。我怀疑我遗漏了拆解的某些部分 - 或者没有暴露(??)。
[EAAccessoryManager共享AccessoryManager]connectedAccessories]]正在返回我连接的附件,我可以查询它以获取名称、型号等。但是,以下行将_session设置为nil。
_session = [[EASession alloc] initWithAccessory:_accessory forProtocol:_protocolString];
有什么方法可以诊断EASession初始化失败的原因吗?
是否有一些清除旧 EASession 的咒语?
此问题与 this 相关一 - 但我并不是在寻求关于该走哪条路的建议。我想问为什么这条路有这么大的陷阱以及如何绕过它。
最佳答案
我发现(在 iOS4.1 后的世界中)离开应用程序(后台或退出)将导致 DidDisconnectNotification 触发。在刚刚按下电源按钮或让设备休眠的情况下;我们没有看到连接断开。
现在,如果 BT 设备超出范围或自行进入休眠状态。然后连接就断开了。
因此,除了 ConnectionNotifications 之外,我们不再依赖任何东西。我们甚至不信任 [[EAAccessoryManager sharedAccessoryManager]connectedAccessories]
列表,因为我们发现它有时可能包含“幽灵配件”,这些配件会说它们已连接并且具有您可以连接的流,并且即使在整个蓝牙系统关闭(BT 图标关闭)后也能获取写入可用事件
当您在后台时,ConnectionNotifications 会被缓存,因此当您重新进入应用程序时,您应该会获得新的状态。
当然是在第一次进入时;您需要确保已正确设置所有监听器(等)。
关于iphone - EASession、EAAccessoryDelegate 和 "ERROR - opening session failed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4394291/
我是一名优秀的程序员,十分优秀!