【问题标题】:Reliable bluetooth on AndroidAndroid上可靠的蓝牙
【发布时间】:2017-08-18 08:29:52
【问题描述】:

我正在寻找通过蓝牙在 Android 设备之间发送消息。我遵循了开发人员指南,它可以工作。但是在使用它时发现一些已发送的消息可能会丢失。

我想发送可靠的消息,例如我可以在 TCP over Wifi 中执行的操作。 到目前为止,我得到的答案是在我的应用程序中实现自己的确认系统。但我相信存在一种更简单、更好的方法,比如通过蓝牙使用 TCP。环顾四周,我发现了这个令人失望的答案:Are there any TCP/IP stack implementations on top of Bluetooth for Java, more specificaly for Android?

在Android上真的不可能吗?

【问题讨论】:

    标签: android tcp bluetooth


    【解决方案1】:

    搜索各种蓝牙协议。 蓝牙协议是:

    1. L2cap:不可靠
    2. rfcomm:建立在 l2cap 之上,像 tcp 一样可靠
    3. obex:使用 rfcomm 作为传输层,用于发送对象。

    所以您的选择可能是 rfcomm 和 obex 协议。找到在 android 上实现这些的方法。我在 J2me 中实现了这些,不确定 android。

    【讨论】:

    • 好的,谢谢!我会看看它(不是现在,我在学校很忙)。保持联系!
    【解决方案2】:

    我认为您可以“像我在 tcp over wifi 中所做的那样发送可靠的消息”。蓝牙套接字与常规的 TCP/IP 堆栈不同,但我相信它是可靠的。我认为您不会丢失消息而不会在套接字通信中遇到错误(或异常)。

    您是说在 Android 上使用蓝牙套接字时消息消失且没有错误?你确定吗?

    【讨论】:

    • 最近我再次尝试,是的,如果您发送 200 条消息,您将在没有警告的情况下丢失其中一些消息(或者可能是我没有发现的隐藏消息?)。但是您的消息以良好的顺序到达。然后,如果您稍等片刻(我猜是缓冲区变空的时间),它会再次起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 2018-10-07
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多