react-native - 使用 native react 杀死应用程序后,蓝牙仍然处于事件状态

标签 react-native bluetooth bluetooth-lowenergy ios-bluetooth

我对 iOS 上的蓝牙生命周期有疑问。
我们正在使用 React Native 和以下库 ( https://github.com/innoveit/react-native-ble-manager ) 来管理我们的蓝牙设备。

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

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

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

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

谢谢

最佳答案

Is this a normal behaviour on iOS ? (the fact that the ble stays open for some time after the app is killed, and no errors are sent through ble ?)

是的,这是正常的。操作系统保持打开连接并与应用程序共享。这些应用程序不直接保持连接。在最后一个应用程序释放连接后,操作系统可能需要一些时间(通常是几秒,但有时会更长一些)才能断开连接。

Is there a way to force close the ble when the app is killed ?

没有。当应用程序被终止时,无法执行任何操作(我假设您强制退出,例如通过向上滑动应用程序切换器)。

综上所述,我有点惊讶的是,如果应用程序不再读取,您会收到返回设备的写入响应。当你说“ble messages ACK”时,你具体指的是哪个“ack”?您收到写响应数据包了吗?或者你的意思是较低级别的确认?

关于react-native - 使用 native react 杀死应用程序后,蓝牙仍然处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72867798/

相关文章:

ios - React Native Firebase 更新到 5.0.0 ios 错误

android - 当我尝试在 marshmellow 版本上打开 MAP 时可能出现未处理的 promise 拒绝

javascript - 如何从导入的元素访问父函数

Android 立即检测到蓝牙断开连接

iOS 蓝牙配件最大速度?

ios - 我可以使用 iBeacon 技术连接两部 iPhone 吗?

android - BLE android 5.0 崩溃

node.js - 在 selenium-webdriver 和 appium 中通过可访问性标签选择元素的有效方法是什么?

IOS开发: Background BLE scanning

java - Android 中的 "NSScanner"类等于什么?