1

我想知道是否有其他人遇到与其他设备的 L2CAP 连接问题。我有一台在 Android 4.1 下运行良好的设备,但现在我使用的是 Kit Kat,它不再工作了。我可以在具有特定服务名称属性的 BT 套接字上侦听,以使设备可以发现电话,但这不再有效。

我的想法是添加 Bluedroid 和删除 Bluez 堆栈。BLE 运行良好,但我失去了经典的 BT 功能。我已经用 BT 调试方式重建了 OS 映像,我可以看到一个奇怪的事件,它似乎试图通过 BLE 连接 L2CAP,即使设备不是 BLE。基本上有很多 ATT 和 GATT 调用,我认为经典的 BT 设备不应该发生这些调用。我也尝试过删除 BLE 功能并重建堆栈,但这并没有解决问题,这似乎表明 L2CAP over BT 根本不受支持(基本上它有相同的问题,即不连接但没有GATT/ATT 通话)。关于经典 BT 的 Bluedroid 中是否存在 L2CAP 功能的任何想法?有没有办法替换堆栈或使用更新版本的 Bluez(支持 BLE)?非常感谢任何帮助或想法。

谢谢

4

1 回答 1

1

不幸L2CAP的是,不支持 4.2 版以后,Android 网站上有一个未解决的问题,其中有更多详细信息。

问题 58164:支持蓝牙 L2CAP

似乎没有关于何时完成修复的回应。我们使用的是 Wii 遥控器,还有另一个项目android-bluez-ime,它也停止了工作。

当我检查4.4 的BluetoothSocket源代码时,它确实有一个常量TYPE_L2CAP,见下文:

/*package*/ static final int TYPE_RFCOMM = 1;
/*package*/ static final int TYPE_SCO = 2;
/*package*/ static final int TYPE_L2CAP = 3;

但是,如果您查看 DOCS,它只会提到RFCOMM.

干杯!!

于 2014-08-28T16:08:28.803 回答