簡體   English   中英

無法將藍牙鍵盤連接到Android設備

[英]Not able to connect a Bluetooth Keyboard to an android device

我正在嘗試以編程方式將Android手機連接到藍牙設備(已配對)。 我在一個線程中使用createRfcommSocketToServiceRecord(UUID)方法。

我知道藍牙鍵盤是HID設備所以我使用的是UUID

00001124-0000-1000-8000-00805f9b34fb

上面的方法返回一個BluetoothSocket對象,但是當調用bluetoothSocket.connect()時,它無法連接到HID設備。 它給出IOException:發現失敗

我已經搜索了很多,但不知道如何解決這個問題。

是否只能在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。

嘗試使用InputDevicetakeKeyEvents來獲取應用中的按鍵數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM