LE面向连接的频道-Android支持

LE面向连接的频道-Android支持,android,bluetooth,bluetooth-lowenergy,android-bluetooth,Android,Bluetooth,Bluetooth Lowenergy,Android Bluetooth,据称,Android 8.0支持面向LE连接的通道。然而,我在Android API中没有看到任何关于它的引用。BluetoothAdapter只有监听RFCOMM套接字的方法(仅在BT Classic上运行);而BluetoothSocket说:“最常见的蓝牙套接字类型是RFCOMM,这是Android API支持的类型。” 怎样才能使用LECOC?有人能帮忙澄清这一困惑吗?此外,它们似乎受到运行在Java API下的BLE堆栈的支持,例如,请参见。LE L2CAP面向连接的通道支持是核心规范

据称,Android 8.0支持面向LE连接的通道。然而,我在Android API中没有看到任何关于它的引用。
BluetoothAdapter
只有监听RFCOMM套接字的方法(仅在BT Classic上运行);而
BluetoothSocket
说:“最常见的蓝牙套接字类型是RFCOMM,这是Android API支持的类型。”


怎样才能使用LECOC?有人能帮忙澄清这一困惑吗?此外,它们似乎受到运行在Java API下的BLE堆栈的支持,例如,请参见。

LE L2CAP面向连接的通道支持是核心规范4.1中引入的新功能

在查看了安卓8.0代码之后(我没有测试CoC功能,因为它需要远程设备也支持CoC),从代码的角度来看,您应该能够在安卓8.0上使用此功能

假设您想连接套接字作为电话端的客户端,您不需要调用RFCOMM套接字而是调用L2CAP,使用以下套接字; 请注意,需要提及两项: 1) 初始化套接字结构时使用类型_L2CAP。 2) 设置套接字端口时应用CoC掩码(0x20000)

以下是JNI链接:

以下是堆栈链接:

在下面,您将找到L2CAP连接的套接字链接


第912行表示CoC格式。

谢谢,我也没有CoC设备;下周我会买一个。我试图找到BLE堆栈代码和您提到的JavaAPI之间的链接,但失败了;你对此有什么见解吗?你可能会发现以下链接可以帮助你理解逻辑:@GuoXingmin这些API只能通过NDK或reflection访问对吗?@GuoXingmin是的,我看到有一些方法可以获取类型为L2CAP的BluetoothSocket实例,但是他们有
@hide
注释,例如:
BluetoothDevice
classL2CAP-CoC中的
createL2capSocket
方法将从Android Q开始得到支持。我无法引用官方消息来源