首页 > 解决方案 > Android 10 L2CAP 连接 IOException 超时 Wii 平衡板

问题描述

背景

很久以前,我的任务是为 Wii 平衡板制作一个 android 应用程序,经过一番折腾后,我发现 android 不再支持 L2CAP。更多的研究导致它被重新添加到 Android 10 中。随着 Android 10 的推出,我现在一直在尝试破解它。

问题

所以我现在的简单目标是与 Wii 平衡板建立连接。

我的连接方法是:

以上是我尝试连接的简化流程。我还尝试使用BalanceBoard.javaPaul Burton 的fitscales repo 更新所有旧蓝牙代码,但我仍然会超时。

标签: androidbluetoothandroid-10.0l2capwii-balanceboard

解决方案


你看过 bt_stack 日志吗?

这是我尝试用 wiimote 打开套接字的过程:

04-05 12:25:04.949 E/bt_stack(4895): [ERROR:btif_sock_l2cap.cc(244)] SOCK_LIST: free(id = 4) - NO app_fd!
04-05 12:25:04.949 I/bt_stack(4895): [INFO:btsnoop.cc(323)] clear_l2cap_whitelist: Clearing whitelist from l2cap channel. conn_handle=65535 cid=65:0
04-05 12:25:04.949 E/bt_l2cap(4895): L2CA_FreeLePSM: Invalid PSM=19 value!
04-05 12:25:40.141 I/bt_stack(4895): [INFO:btsnoop.cc(323)] clear_l2cap_whitelist: Clearing whitelist from l2cap channel. conn_handle=1 cid=66:64
04-05 12:25:55.736 I/bt_stack(4895): [INFO:btsnoop.cc(323)] clear_l2cap_whitelist: Clearing whitelist from l2cap channel. conn_handle=2 cid=67:65

我相信这就是问题所在,我只是一个新手,所以我不确定可以做些什么。我知道旧的连接方式将 fd 作为参数传递给蓝牙套接字构造函数,但我认为这不再可能了


推荐阅读