2011-03-29 53 views
1

我的目標是編寫一個應用程序,允許我通過Playstation 3藍牙遙控器控制我的Motorola Xoom。Android BluetoothSocket.connect()拋出IOExceptions「連接被拒絕」和「服務發現失敗」

該設備能夠被分類爲遊戲杆的原生藍牙應用程序&發現。但是,我無法通過原生藍牙應用進行配對,因爲該應用需要密碼&該設備沒有我知道的引腳。

到目前爲止,我能夠以編程方式發現設備&創建套接字,但是所有連接到設備的嘗試失敗。

在這兩種情況下: UUID u = UUID.fromString(「00001124-0000-1000-8000-00805f9b34fb」);

這應該是HID設備使用的UUID。我還使用另一個site上描述的方法來驗證設備上的UUID是否可用。

方法一(許多人似乎有此問題):

BluetoothSocket socket = device.createRfcommSocketToServiceRecord(u); 
socket.connect(); 

結果:IOException異常 「服務發現失敗」

方法2(接受的解決方法方法1。我也試過端口1-100):

Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class}); 
BluetoothSocket socket = (BluetoothSocket) m.invoke(device, 1); 
socket.connect(); 

結果:IOException異常 「連接被拒絕」

我曾嘗試使用3個設備(加上他們的UUID)這樣的代碼:

  • 遊戲機遙控

    00001124-0000-1000-8000-00805f9b34fb

    00001200-0000-1000-8000-00805f9b34fb

  • Nintento的Wiimote

    00001000-0000-1000-8000-00805f9b34fb

    00001124-0000-1000-8000-00805f9b34fb

    00001200- 0000-1000-8000-00805f9b34fb

  • 微軟藍牙數字鍵盤 (它通過natvie藍牙應用程序與一個pin成功配對)

    00001000-0000-1000-8000-00805f9b34fb

    00001124-0000-1000-8000-00805f9b34fb

    00001200-0000-1000-8000-00805f9b34fb

回答

1

爲了能夠連接到您必須通過HID配置文件連接的設備,您嘗試的是通過SPP(串行端口配置文件)連接到HID的UUID等,這是行不通的。 此外,這些設備具有一些「定製」HID協議描述符,允許它與此預配對的遊戲機一起使用,您將需要訪問那些能夠使用這些控制器來控制Xoom的設備

相關問題