I have a problem with the lifecycle of Bluetooth on iOS.
We are using React Native and the following library (https://github.com/innoveit/react-native-ble-manager) to manage our Bluetooth devices.

当设备通过蓝牙发送其所有数据时,设备发送数据并清除其本地数据(我们仅使用ble消息确认,没有内部应用程序确认).

问题是,当应用程序被关闭时,iOS似乎保持ble打开,这使设备认为它仍在发送由我们的应用程序正确处理的数据,并在最后清除它(这会导致数据丢失).

这是iOS上的正常行为吗?(事实上,ble在应用程序被终止后保持打开一段时间,并且没有通过ble发送错误?)

有没有办法在应用程序被关闭时强制关闭ble?

谢谢

推荐答案

这是iOS上的正常行为吗?(事实上,ble在应用程序被终止后保持打开一段时间,并且没有通过ble发送错误?)

是的,这很正常.操作系统保持打开连接并与应用程序共享.这些应用程序不直接保持连接.在最后一个应用程序发布连接后,操作系统可能需要一些时间(通常在几秒钟左右,但有时会稍长一点)才能断开连接.

有没有办法在应用程序被关闭时强制关闭ble?

不.当应用程序被终止时,没有办法做任何事情(我假设你是通过强制退出,例如通过在应用程序切换器上滑动).

尽管如此,我还是有点惊讶,如果应用程序不再阅读,你会收到回写响应.当你说"ABLE messages ACK"时,具体是指哪个"ACK"?你收到回写响应包了吗?或者你是指较低级别的ack?

React-native相关问答推荐

一旦我关闭应用程序,Json struct 就会发生变化

如何判断 Detox 正在运行测试?

React js 做通用头部

react native :navigationOptions 中的标题样式不起作用

React native flexbox - 如何做 percentages || columns || responsive || grid etc

在react-native 应用程序中使用中继

如何在 React Native 的嵌套 Touchable 中传播touch 事件?

使用 Android NDK 在 C 或 C++ 中创建 react-native Native Module?

SyntaxError:Strict mode does not allow function declarations in a lexically nested statement on a newly created app

React Native ScrollView 在 iOS 上从底部被截断

Unexpected token on "export default const"

horizontal水平 FlatList 前后的间距

如何用 Realm 元素文件组织 React Native?

I18nManager.forceRTL 不会在首次应用加载时应用更改

如何在react-native中关闭模态

react-native如何导入元素根目录?

react-native iOS 应用在部署后不显示静态/本地资源

在 React Native 中向组件传递参数

如何升级 react-native gradle 版本

在 react-native 中使用捏拉zoom 的可滚动图像