Android 在蓝牙rfcomm设备上读取数据时丢失

Android 在蓝牙rfcomm设备上读取数据时丢失,android,c++,bluetooth,blocking,spp,Android,C++,Bluetooth,Blocking,Spp,我有一个蓝牙设备,通过蓝牙SPP配置文件连接到Android智能手机 连接成功后,设备将打开rfcomm设备 handle = open("/dev/rfcomm0", O_RDWR | O_NOCTTY | O_SYNC); 连接成功后,智能手机会向设备发送数据。 它向设备发送3个连续的几个字节的消息。这是在查看蓝牙设备的嗅探日志后验证的 但是,蓝牙设备端的阻塞读取永远无法读取最初的2条消息,之后它将读取所有其他消息 同样的实验是通过编写一个独立脚本来尝试的,该脚本在SPP连接成功后立即开始

我有一个蓝牙设备,通过蓝牙SPP配置文件连接到Android智能手机

连接成功后,设备将打开rfcomm设备

handle = open("/dev/rfcomm0", O_RDWR | O_NOCTTY | O_SYNC);
连接成功后,智能手机会向设备发送数据。 它向设备发送3个连续的几个字节的消息。这是在查看蓝牙设备的嗅探日志后验证的

但是,蓝牙设备端的阻塞读取永远无法读取最初的2条消息,之后它将读取所有其他消息

同样的实验是通过编写一个独立脚本来尝试的,该脚本在SPP连接成功后立即开始读取rfcomm设备上的数据,但这里的结果也是一样的


请指导可能出现的问题。

或多或少,这是一个时间问题

设备上的应用程序请求蓝牙堆栈与Android手机建立SPP连接。SPP连接成功后,蓝牙堆栈将创建/dev/rfcomm0设备

一旦创建了rfcomm通道,Android手机就会向设备发送数据,但此时设备上的应用程序并没有随着rfcomm设备的创建而更新。由于rfcomm没有读卡器,蓝牙堆栈会刷新从Android手机接收到的所有数据

一旦成功,就多次执行此实验