安卓手机上的蓝牙连接可靠吗?

3

安卓设备上的蓝牙传输有多可靠? 我使用Libgdx编写了一个带蓝牙功能的游戏草稿。 但是25%的数据包会丢失,导致角色的移动不流畅。 于是我添加了确认接收数据包的功能,但这会降低性能。 有时数据包需要重新发送几次。 这两个设备离得很近。 谢谢。

1个回答

3
如果是这样的话,两个设备之间的文件传输可能永远不会成功,因为你永远无法在另一侧获得完整的文件。
重要的是你实现了什么BT ProfileHID用于游戏鼠标、键盘等。
但是大多数安卓手机,至少在一段时间内没有实现HID配置文件,有一些关于三星手机的经验,但平板电脑可能会有所不同。

我的游戏为什么会出现不可靠的工作?正如我所说,我丢失了25%的发送数据包。 - nms
你能展示一下你的代码吗?以便我们了解你是如何建立连接和传输数据的。 - Its not blank
代码相当庞大,我怀疑有人会愿意去研究它。代码的思路如下:我采用了蓝牙聊天谷歌示例。建立连接后,用户应该点击“播放”按钮,然后Activity2启动,在那里我启动了Libgdx线程。不幸的是,我找不到其他蓝牙示例,只有谷歌的聊天。 - nms
如果蓝牙是可靠的,那么为什么蓝牙采用OBEX?维基百科称OBEX在设计和功能上类似于HTTP,为客户端提供了一个可靠的传输连接服务器,并可以请求或提供对象。您能否解释一下? - Kozlov
1
OBEX是一种用于通信的协议,而蓝牙则是其媒介。协议类似于语言,假设我想在Stackoverflow上与您交流,我会使用英语,如果我尝试使用日语或者您使用法语,则无法进行成功的沟通。因此,在这里,OBEX只是一种通过蓝牙(就像Stackoverflow一样的媒介)进行通信的语言。@Kozlov - Its not blank
谢谢,我正在尝试的实验是连续向蓝牙输出流写入64k的数据,并在另一端读取并写入文件。传输完成后,当我比较文件时,接收到的字节数小于接收大小。当我在文件比较工具中比较文件时,我发现中间有一些字节丢失了。所以我想知道蓝牙是否可靠,或者说蓝牙堆栈中是否有缓冲区被覆盖了? - Kozlov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接