gpt4 book ai didi

android - 如何与蓝牙键盘通话?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:52:40 30 4
gpt4 key购买 nike

我编写了一个连接到蓝牙键盘的 Android 应用程序。它通过 BT 套接字连接到键盘并获取套接字的输入流。

InputStream inStrm = socket.getInputStream();

接下来我尝试读取输入流,但它说没有可用字节。

int nBytesAvail = inStrm.available(); // always gives me 0

或者

int  dataByte = inStrm.read(); // always generates IOException

异常显示:软件导致连接中止

如果我尝试写入流,我会得到另一个异常:传输端点未连接。

可能会发生以下两种情况之一。

  1. 我首先担心的是要对键盘说 HID 协议(protocol),在我说出正确的咒语之前它不会泄露它的 secret 。那是对的吗?还是应该由 BT 套接字堆栈自动处理?套接字流似乎是标准的串行流,我不确定这是不是正确的。

  2. 我的第二个担心是,由于这是 Galaxy Tab,我的问题可能只是操作系统的特定部分已被三星删除(但我是否仍能从套接字连接获得有效的输入流? ).据广泛报道,美国版的 Tab 根本无法使用标准的 Android BT 实用程序连接到任何 BT HID,尽管 BT 文件传输可以正常工作。

我想第三种可能性是我只是在击键发生时错过了它们。我不知道 Java 对来自 HID 的 BT 数据做了多少缓冲,但如果建立套接字连接,数据应该出现在输入流中,不是吗?

我不愿意在这方面投入更多时间,以防万一我以完全错误的方式处理它(参见 #1),或者它注定要失败(参见 #2)。

最佳答案

所有普通的蓝牙键盘都实现 HID 配置文件,这需要 L2CAP 连接。 Android 到目前为止只提供了使用 RFCOMM 连接的能力。您需要使用 Native Development Kit 并用 C 编写键盘代码以使用 bluez 来实现您的目标。查看使用 Nintendo WiiMote 的应用程序。 WiiMote 还实现了 HID 配置文件。

关于android - 如何与蓝牙键盘通话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4263101/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com