我的目标是编写一个应用程序,让我可以使用 Playstation 3 蓝牙遥控器控制摩托罗拉 Xoom。
该设备能够被本地蓝牙应用程序发现并归类为操纵杆。但是,我无法通过本机蓝牙应用程序配对,因为该应用程序需要 PIN 并且设备没有我知道的 PIN。
到目前为止,我能够以编程方式发现设备并创建一个套接字,但是所有连接到设备的尝试都失败了。
在这两种情况下:UUID u = UUID.fromString("00001124-0000-1000-8000-00805f9b34fb");
这应该是 HID 设备使用的 UUID。我还使用了另一个站点上描述的方法来验证 UUID 在设备上是否可用。
Method1(很多人似乎对此有疑问):
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
任天堂Wiimote
00001000-0000-1000-8000-00805f9b34fb
00001124-0000-1000-8000-00805f9b34fb
00001200-0000-1000-8000-00805f9b34fb
Microsoft 蓝牙数字键盘(通过 natvie 蓝牙应用程序成功配对,与 pin)
00001000-0000-1000-8000-00805f9b34fb
00001124-0000-1000-8000-00805f9b34fb
00001200-0000-1000-8000-00805f9b34fb