有没有办法在我失去连接之前通过蓝牙发送命令
Is there a way to send a command via bluetooth, before I lost the connection
我正在尝试制作一个应用程序,当它看到一个特定的蓝牙设备连接到它并发送一个命令并在松开该连接之前发送另一个命令。
该设备是标准的蓝牙串口设备。
有没有办法检查我什么时候会断开连接?
不,遗憾的是蓝牙不能以这种方式工作。您通常会收到远程设备断开连接的通知,您甚至可以得到断开连接的原因(例如 BT_HCI_REMOTE_USER_TERMINATED_CONNECTION),但到那时已经太晚了,您的设备和远程设备之间的 link 已经丢失。一般来说,断开连接的工作方式是在两个设备之间来回发送空蓝牙数据包(类似于 ACK)以指示 link 处于活动状态。如果该数据包在特定超时后未到达,BLE 堆栈将向应用程序抛出一个事件,通知它连接已丢失(即断开连接事件)。
如果您使用的是低功耗蓝牙,并且您控制着两台设备(您的设备和远程设备),那么您可以在广告渠道上实施额外的通信。这不如通过连接执行通信有效,但您可以在断开连接时公布此附加命令,远程设备也会在断开连接时扫描此新命令。
希望对您有所帮助。
我正在尝试制作一个应用程序,当它看到一个特定的蓝牙设备连接到它并发送一个命令并在松开该连接之前发送另一个命令。 该设备是标准的蓝牙串口设备。 有没有办法检查我什么时候会断开连接?
不,遗憾的是蓝牙不能以这种方式工作。您通常会收到远程设备断开连接的通知,您甚至可以得到断开连接的原因(例如 BT_HCI_REMOTE_USER_TERMINATED_CONNECTION),但到那时已经太晚了,您的设备和远程设备之间的 link 已经丢失。一般来说,断开连接的工作方式是在两个设备之间来回发送空蓝牙数据包(类似于 ACK)以指示 link 处于活动状态。如果该数据包在特定超时后未到达,BLE 堆栈将向应用程序抛出一个事件,通知它连接已丢失(即断开连接事件)。
如果您使用的是低功耗蓝牙,并且您控制着两台设备(您的设备和远程设备),那么您可以在广告渠道上实施额外的通信。这不如通过连接执行通信有效,但您可以在断开连接时公布此附加命令,远程设备也会在断开连接时扫描此新命令。
希望对您有所帮助。