我的目標是編寫一個應用程序,允許我通過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