0

我需要在 Mac 上打开蓝牙插座。
LightBlue 看起来很棒,但事实证明,在 Mac 版本中,所有与 L2CAP 相关的事情都没有实现,而且可以肯定的是,Mac 不支持(实现的)RFCOM。

当使用它并尝试绑定套接字时,它会失败并显示 0x2c0 IOReturn 消息,即kIOReturnNoDevice.

这是我的代码:

from lightblue import * 

s = socket() # uses RFCOMM
s.bind(("", 0))

→ kIOReturnNoDevice

from lightblue import * 

s = socket(L2CAP)
s.bind(("", 0))

→ NotImplementedError:当前不支持 L2CAP 服务器套接字

是否有任何替代方案允许在 macOS 上创建蓝牙套接字或 LightBlue 的活动分支?

毕竟,macOS 确实已经有了 BSD 的套接字。

4

1 回答 1

0

事实证明,macOS 不允许使用蓝牙芯片打开套接字。出于安全原因,所有蓝牙通信都必须通过蓝牙驱动程序IOBluetoothFamily.kext,Apple 自己IOBluetooth为此使用框架。

于 2019-12-19T16:01:15.870 回答