其他分享
首页 > 其他分享> > Android蓝牙块大小

Android蓝牙块大小

作者:互联网

我遇到蓝牙插座的奇怪行为(以我的观点),我想知道是否有人可以向我澄清一下.

情况:

我有两个通过蓝牙插槽连接在一起的Android应用程序:

>第一个在输出流上进行简单的write(byte []消息).
>第二个对输入流进行简单的read(byte []缓冲区).

在阅读器端,我使用1024个字节的缓冲区.发送方发送的消息比接收方缓冲区的大小大一点:1024 108字节(总是相同的消息).

现在,行为如下:

在阅读器应用程序上,我通常会收到第一个1024字节的块,该块填满了缓冲区(如预期的那样),然后是第二个108字节的块.

但是实际上(通常是40%的时间)我收到第一个1008字节的块,然后收到第二个124字节的块.

我真的很想了解这一点,因为我很想念一个重要的蓝牙概念.起初,我想将读取的字节数与缓冲区大小进行比较,以了解是否已接收到整个消息,但是此实验表明这可能不是一个好主意.

有人可以向我解释这种行为吗?

提前致谢.

解决方法:

作为记录,我现在使用Google Guava方法对流进行读/写,并且一切正常.

标签:android-bluetooth,android
来源: https://codeday.me/bug/20191122/2063249.html