我正在尝试在Linux上使用Python 列出所有附近/可发现的蓝牙设备,包括那些已配对的蓝牙设备.
我知道如何使用其地址列出设备的服务,并且可以成功连接:
services = bluetooth.find_service(address='...')
Run Code Online (Sandbox Code Playgroud)
阅读PyBluez文档如果我没有指定任何标准,我希望附近的任何设备都能显示出来:
"如果未指定任何条件,则返回检测到的所有附近服务的列表."
我现在需要的"唯一"事情是能够列出已经配对的设备,无论它们是开,关还是不在附近.就像我在Ubuntu/Unity中的All Settings - > Bluetooth中获得的列表一样.
顺便说一句,以下内容未列出我的机器上已配对的设备,即使它们在/附近.可能是因为配对后它们不可发现:
import bluetooth
for d in bluetooth.discover_devices(flush_cache=True):
print d
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ...?
编辑:我找到并安装了"bluez-tools".
bt-device --list
Run Code Online (Sandbox Code Playgroud)
...给我提供我需要的信息,即添加设备的地址.
我检查了C源,发现这可能不像我想象的那么容易.
仍然不知道如何在Python中这样做...
编辑:我认为DBUS可能是我应该阅读的内容.看起来很复杂.如果有人有一些代码要分享,我会非常高兴.:)