gpt4 book ai didi

macos - 如何建立L2Capp中断 channel 连接?

转载 作者:行者123 更新时间:2023-12-02 01:17:51 25 4
gpt4 key购买 nike

我正在尝试打开 L2Cap HID channel 和中断 channel ,以便我可以向蓝牙设备发送 HID 命令。

我已完成所有服务广告和设备配对并建立了基带连接。

Hid Control channel 打开正常。当我尝试创建 kBluetoothL2CAPPSMHIDInterrupt 连接时

l2capChannelQueueSpaceAvailable

调用委托(delegate)方法(不确定这意味着什么),然后

l2capChannelOpenComplete

但是连接立即关闭调用

l2capChannelClosed

如何正确打开这些连接?

我花了很长时间挖掘 IOBlueTooth 框架和 bluetooth.org HID 规范,但几乎没有任何有用的信息(至少我能找到)。

当我追踪 L2Cap channel 时,我看到一些空值

mIncomingDataListener

mEventDataListener

。我不知道如何设置这些或者它们是否与我的问题有关......只是推测。

下面的代码片段是我迄今为止在与设备建立连接后尝试建立连接的尝试。

-(void)establishL2CappConnections:(IOBluetoothDevice*)device
{
IOReturn r;
IOBluetoothL2CAPChannel *ch1;
r = [device openL2CAPChannelSync:&ch1
withPSM:(BluetoothL2CAPPSM)kBluetoothL2CAPPSMHIDControl
delegate:self];
self.mL2CappChannel=ch1;
NSLog(@"r == %i",r);

IOBluetoothL2CAPChannel *ch2;
r = [device openL2CAPChannelSync:&ch2
withPSM:(BluetoothL2CAPPSM)kBluetoothL2CAPPSMHIDInterrupt
delegate:self];
self.mL2CappInterruptChannel=ch2;
NSLog(@"r == %i",r);


}

编辑:1

我已附上我的数据包日志。很奇怪,请求

kBluetoothL2CAPPSMSDP 0x0001

在没有我请求的情况下就完成了,然后一切都开始断开连接。

BT Packet Logs

最佳答案

根据您的日志,很明显您的设备处于有限连接模式,其保持事件状态的时间为 30 秒或更短。更改设备设置以使其可被发现。

kBluetoothL2CAPPSMSDP 0x0001

表示位 13 - 有限可发现模式

使用蓝牙设置可以解决您的问题

关于macos - 如何建立L2Capp中断 channel 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31136616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com