1

我的目标是编写一个应用程序,让我可以使用 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

4

1 回答 1

1

为了能够连接到您必须通过 HID 配置文件连接的设备,您正在尝试通过 SPP(串行端口配置文件)连接到用于 HID 的 UUID 等,这将不起作用。此外,这些设备还有一些“自定义”HID 协议描述符,允许它与这个预先配对的游戏机一起工作,您需要访问那些能够使用这些控制器控制 Xoom

于 2011-03-29T22:21:39.033 回答