【发布时间】:2012-12-25 02:23:34
【问题描述】:
我正在尝试列出所有附近/可发现的蓝牙设备,包括那些已经配对的,在 Linux 上使用 Python。
我知道如何使用设备的地址列出服务,并且可以成功连接:
services = bluetooth.find_service(address='...')
阅读 PyBluez 文档,如果我不指定任何条件,我希望附近的任何设备都会出现:
“如果未指定条件,则返回检测到的所有附近服务的列表。”
我现在需要的“唯一”事情是能够列出已经配对的设备,无论它们是打开、关闭还是附近。就像我在 Ubuntu/Unity 中的所有设置 --> 蓝牙中得到的列表一样。
顺便说一句,以下没有列出我机器上已经配对的设备,即使它们在/附近。可能是因为它们一旦配对就无法被发现:
import bluetooth
for d in bluetooth.discover_devices(flush_cache=True):
print d
有什么想法吗...?
编辑:我找到并安装了“bluez-tools”。
bt-device --list
... 为我提供所需的信息,即添加设备的地址。
我检查了 C 源代码,发现这可能不像我想象的那么容易。
仍然不知道如何在 Python 中做到这一点......
编辑:我认为 DBUS 可能是我应该阅读的内容。似乎够复杂。如果有人有一些代码可以分享,我会非常高兴。 :)
【问题讨论】:
-
您可以通过搜索 Blueman Project 的source code 找到您正在寻找的答案。
-
@Richard,我也想过,也开始做,不过真的是绕
dbus...