我必须在两个蓝牙设备之间交换数据,其中一个是Android设备.为简单起见,您可以假设其他设备将是运行bluez的通用Linux设备,生成类似于健身跟踪器将生成的数据的数据.
该场景似乎是蓝牙低功耗的简单用例.我目前遇到的问题来自于通信必须可靠(TCP可靠的方式可靠).这意味着:
>没有损失
>没有数据损坏
>需要保留订单
>没有重复
>没有幻像包
虽然在链路层级别可以防止丢失,但在使用低能耗时(例如,使用指示可能会实现这一点),似乎不会明确保留顺序.
没有用蓝牙做很多工作我目前对选项数量的压力很大,而同时没有任何选项似乎很适合这个法案.
是否存在在两个蓝牙设备之间建立可靠通信的“最佳实践”?蓝牙低功耗解决方案更可取,但不是强制性的.
解决方法:
一旦您的蓝牙连接设置可靠.因此,您不必担心数据丢失或损坏.
所以你担心的事情可以在你身边轻松处理.在为BluetoothAdapter设置BroadcastReceiver时,您将获得正确的连接和断开连接回调.
如果有任何断开连接,您可能需要重新启动连接程序,一旦正确建立,您可以重新发送数据.
我还不知道你的目的,但我需要提到的一件事是,如果你长时间保持连接,我不推荐蓝牙通信.如果没有连续传输,某些设备会在一段时间后自动断开连接.