Моя цель - написать приложение, которое позволит мне управлять моим Motorola Xoom с помощью пульта дистанционного управления Playstation 3 Bluetooth.
Устройство может быть обнаружено нативным приложением Bluetooth и классифицировано как джойстик. Однако я не могу выполнить сопряжение через собственное приложение Bluetooth, потому что приложение требует PIN-код, а устройство не имеет PIN-кода, который мне известен.
Пока я могу программно обнаружить устройство и создать сокет, однако все попытки подключиться к устройству завершаются неудачей.
В обоих случаях:
UUID u = UUID.fromString ("00001124-0000-1000-8000-00805f9b34fb");
Предполагается, что это UUID, используемый устройствами HID. Я также использовал метод, описанный на другом сайте , чтобы убедиться, что UUID доступен на устройстве.
Method1 (похоже, у многих людей есть проблемы с этим):
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(u);
socket.connect();
Результат: IOException "Обнаружение службы не удалось"
Method2 (принятый обходной путь для Method1. Я также пробовал порты 1-100):
Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
BluetoothSocket socket = (BluetoothSocket) m.invoke(device, 1);
socket.connect();
Результат: IOException «Отказ в соединении»
Я пробовал этот код, используя 3 устройства (плюс их UUID):
Playstation Remote
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
Microsoft Bluetooth цифровая клавиатура
(который успешно соединяется с помощью булавки через приложение natvie bluetooth)
00001000-0000-1000-8000-00805f9b34fb
00001124-0000-1000-8000-00805f9b34fb
00001200-0000-1000-8000-00805f9b34fb