Python 蓝牙开启 Windows 10
Python bluetooth on Windows 10
我发现了多个类似的问题,但它们似乎都已过时或没有有效的答案,所以我再次在这里提问。
我想通过笔记本电脑的蓝牙连接到另一台设备(在我的例子中是 RaspberryPi),即 运行 Windows 10.
我知道通过套接字模块提供本机支持,但是这对我来说是一个错误。搜索后,我找到了一个答案,声称 python 蓝牙套接字不适用于 Windows(?).
所以我继续搜索,发现PyBluez作为一个很好的蓝牙库被推荐了很多。再一次,这给我带来了一个 OSError
,我听说 PyBluez 不支持 Windows 10.
我找到了一个名为 pybluez-win10
的模块,但基本上没有关于如何使它工作的文档。从 here 安装 Windows 的预编译版本也没有用,我想那是因为最新版本是 Python 3.5 而我使用的是 3.7.
如果您有任何建议可以尝试,或者您知道推荐的其他库,请告诉我。谢谢!
Windows10 的蓝牙 RFCOMM 支持即将在 Python3.9
中推出
https://bugs.python.org/issue36590
我在 Windows 10 PC 上安装了 Python 3.9.0a6,并且能够从 Bluedot 应用程序连接到它。 https://play.google.com/store/apps/details?id=com.stuffaboutcode.bluedot&hl=en_GB
我在 PC 上的简单测试代码是:
import socket
adapter_addr = 'e4:a4:71:63:e1:69'
port = 3 # Normal port for rfcomm?
buf_size = 1024
s = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM)
s.bind((adapter_addr, port))
s.listen(1)
try:
print('Listening for connection...')
client, address = s.accept()
print(f'Connected to {address}')
while True:
data = client.recv(buf_size)
if data:
print(data)
except Exception as e:
print(f'Something went wrong: {e}')
client.close()
s.close()
我发现了多个类似的问题,但它们似乎都已过时或没有有效的答案,所以我再次在这里提问。
我想通过笔记本电脑的蓝牙连接到另一台设备(在我的例子中是 RaspberryPi),即 运行 Windows 10.
我知道通过套接字模块提供本机支持,但是这对我来说是一个错误。搜索后,我找到了一个答案,声称 python 蓝牙套接字不适用于 Windows(?).
所以我继续搜索,发现PyBluez作为一个很好的蓝牙库被推荐了很多。再一次,这给我带来了一个 OSError
,我听说 PyBluez 不支持 Windows 10.
我找到了一个名为 pybluez-win10
的模块,但基本上没有关于如何使它工作的文档。从 here 安装 Windows 的预编译版本也没有用,我想那是因为最新版本是 Python 3.5 而我使用的是 3.7.
如果您有任何建议可以尝试,或者您知道推荐的其他库,请告诉我。谢谢!
Windows10 的蓝牙 RFCOMM 支持即将在 Python3.9
中推出https://bugs.python.org/issue36590
我在 Windows 10 PC 上安装了 Python 3.9.0a6,并且能够从 Bluedot 应用程序连接到它。 https://play.google.com/store/apps/details?id=com.stuffaboutcode.bluedot&hl=en_GB
我在 PC 上的简单测试代码是:
import socket
adapter_addr = 'e4:a4:71:63:e1:69'
port = 3 # Normal port for rfcomm?
buf_size = 1024
s = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM)
s.bind((adapter_addr, port))
s.listen(1)
try:
print('Listening for connection...')
client, address = s.accept()
print(f'Connected to {address}')
while True:
data = client.recv(buf_size)
if data:
print(data)
except Exception as e:
print(f'Something went wrong: {e}')
client.close()
s.close()