Можно ли использовать wiimote в качестве android игрового контроллера? - PullRequest
2 голосов
/ 04 апреля 2020

Меня давно интересовало использование Wiimote в качестве контроллера для Android.

Я знаю, что это было возможно за много лет до go до того, как были удалены методы создания сокета l2cap. из Android api.

В API 29 (Android 10) были добавлены методы для создания сокета l2cap, поэтому теоретически теперь должна быть возможность использовать Wiimote в качестве контроллера.

Я создаю и пытаюсь подключиться к сокету следующим образом:

BluetoothSocket socket = mWiimote.createInsecureL2capChannel(0x13);
socket.connect();

Где 0x13 - это PSM канала данных Wiimote, как указано здесь: https://wiibrew.org/wiki/Wiimote#HID_Interface

Я попытался подключиться к трубе управления, но безрезультатно.

Я только что получил: java.io.IOException: read failed, socket might closed or timeout, read ret -1

У кого-то еще возникла та же проблема при попытке подключить плату баланса Wii: Android 10 Соединение L2CAP IOException timeout Wii Balance Board

Им удалось выполнить сопряжение с платой баланса, но я потерпел неудачу, насколько я понимаю, для этого требуется привилегированное разрешение Bluetooth, так как вы должны установить ключ (ma c адрес хоста или контроллера, в обратном направлении) в зависимости от кнопок, нажимаемых для обнаружения Wiimote. Я не уверен, что этот человек использует привилегированное разрешение (и имеет свое приложение в папке /priv-app/), или у него есть обходной путь.

...