我的问题是我得到了:
raise ValueError ("invalid protocol")
ValueError: invalid protocol在这行代码中:
sock=bluetooth.BluetoothSocket(bluetooth.RFCOMM)我不明白为什么我会得到这个错误。
我之所以使用它,是因为我想向通过蓝牙连接的设备发送一个键盘事件。
发布于 2014-08-01 21:13:55
您的问题标记"l2cap“与引用RFCOMM的代码片段不一致。根据我的经验,在Windows7上,sock=bluetooth.BluetoothSocket(bluetooth.RFCOMM)不会引发错误,而sock=bluetooth.BluetoothSocket(bluetooth.L2CAP)会引发错误。现在,如果你真的想要RFCOMM,这可能是一个硬件问题。例如,如果您的蓝牙驻留在USB蓝牙加密狗上,则在拔出加密狗时,软件将引发此错误。我回答的其余部分主要假设您正在尝试获取L2CAP。
通常,引发该错误是因为您的驱动程序不支持该协议。具体来说,我发现L2CAP在Windows7上的Python2或Python3的PyBluez中是不可访问的。在Linux上的Python3中,L2CAP可以通过“导入套接字”访问。
我不清楚Win7上的Widcomm和MSBT堆栈中是否都存在PyBluez限制。我也不清楚,如果PyBluez试图包装的驱动程序中的服务真的不可用,那么更多的PyBluez工作是否可以解决这个问题。
希望这能有所帮助。
https://stackoverflow.com/questions/24460076
复制相似问题