Java 无法将蓝牙键盘连接到android设备

Java 无法将蓝牙键盘连接到android设备,java,android,bluetooth,hid,rfcomm,Java,Android,Bluetooth,Hid,Rfcomm,我正在尝试以编程方式将Android手机连接到蓝牙设备(已配对)。我正在线程中使用createrFComSocketToServiceRecord(UUID)方法 我知道蓝牙键盘是一个HID设备,所以我使用UUID作为 00001124-0000-1000-8000-00805f9b34fb 上面的方法返回BluetoothSocket对象,但在调用BluetoothSocket.connect()时,它无法连接到HID设备。它给出了IOException:discovery失败 我已经搜索了很

我正在尝试以编程方式将Android手机连接到蓝牙设备(已配对)。我正在线程中使用createrFComSocketToServiceRecord(UUID)方法

我知道蓝牙键盘是一个HID设备,所以我使用UUID作为

00001124-0000-1000-8000-00805f9b34fb

上面的方法返回BluetoothSocket对象,但在调用BluetoothSocket.connect()时,它无法连接到HID设备。它给出了IOException:discovery失败

我已经搜索了很多,但不知道如何解决这个问题

在Android中,是否只能使用这种方法连接Rfcomm而不能连接HID设备?如果 那么,我应该使用什么替代方法呢?我正在使用三星Galaxy S3 Android 4.1在这个应用程序中,配对后(通过设置),我可以使用 蓝牙键盘在一些内置的应用程序,如短信,电子邮件等 在我看来,连接到它应该是可能的,但我不是 当然,如果我使用了正确的方法。我想在我的应用程序中读取按键串行数据

以下是我正在使用的代码:

private class ConnectThread extends Thread {
    private final BluetoothSocket mmSocket;

    public ConnectThread(BluetoothDevice device) {
        BluetoothSocket tmp = null;
        try {
            tmp = device.createRfcommSocketToServiceRecord(mUUID);
        } catch (IOException e) {
            e.printStackTrace();
        }
        mmSocket = tmp;
    }

    public void run() {
        try {
            mmSocket.connect();
        } catch (IOException connectException) {
            try {
                mmSocket.close();
            } catch (IOException closeException) { }
            return;
        }

        Log.d(TAG, "ConnectThread connection successful");
    }

    public void cancel() {
        try {
            mmSocket.close();
        } catch (IOException e) { }
    }
}
在Android中,使用这种方法是否只能连接Rfcomm而不能连接HID设备

是的,很不幸。java方法的命名清楚地表明,只支持rfcomm。HID最有可能在原始l2cap上运行


尝试在应用程序中使用或获取按键数据。

你得到了吗?以编程方式将android连接到蓝牙HID设备?现在这里有同样的问题=/。