python蓝牙 - 检查连接状态

mar*_*rco 5 python bluetooth pybluez

我正在使用 python 的蓝牙模块import bluetooth,我相信它是 PyBluez 包。我能够很好地从 bluetooth.BluetoothSocket 类连接、发送和接收,但是当涉及到连接状态时,我的应用程序完全不知情。

我希望我的应用程序在设备断开连接时禁用某些功能,但似乎没有任何类型的 BluetoothSocket.is_connected() 方法。我希望它能在蓝牙状态发生变化时立即检测到它们。

通常有很多关于像这样简单的事情的主题,所以如果这是重复的,请道歉。我已经多次搜索这个网站寻找答案,但没有发现任何特定于 python 的内容。

bla*_*tus 5

如果您的 SO 是 Linux,您可以使用 hcitool 它会告诉您蓝牙设备的状态。

请在下面找到一个可以满足您需求的 Python 小片段。您需要知道蓝牙设备的 MAC:

import subprocess as sp

stdoutdata = sp.getoutput("hcitool con")

if "XX:XX:XX:XX:XX:XX" in stdoutdata.split():
    print("Bluetooth device is connected")
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!