Фон
Давным-давно мне поручили сделать Android-приложение для Wii Balance Board, но после некоторых экспериментов я обнаружил, что Android больше не поддерживает L2CAP. Дополнительные исследования привели к пониманию того, что он -добавлено в Android 10. С выходом Android 10 я пытался дать ему трещину.
Проблема
Итак, моя простая цель на данный момент — создать связь с Wii Balance Board.
Мой подход к подключению:
Начать открытие
Добавить обнаруженные устройства Bluetooth в список
Когда вы нажимаете на устройство, оно пытается открыть сокет как таковой:
bluetoothSocket = btDevice.createInsecureL2capChannel(port);
Как упоминалось на сайте WiiBrew, я использую значение psm 0x13 для ввода и 0x11 для вывода.
Затем я использую
bluetoothSocket.connect
и продолжаю получать IOException (ошибка тайм-аута)Я также пытался использовать как
createL2capChannel
, так иcreateInsecureL2capChannel
с теми же результатами.Мне удалось успешно подключиться к устройству с помощью
btDevice.createBond()
, а затем использовать обратный адрес BT телефона для.setpin()
, а Wii Balance Board просто действует как тупое устройство ввода. (не уверен, что необходимо сопряжение/хорошая идея)
Выше приведен упрощенный способ того, как я пытаюсь подключиться. Я также пытался использовать BalanceBoard.java
из репозитория fitscales Пола Бертона, обновляя весь старый код Bluetooth, снова я еще получить тайм-аут.