我正在尝试列出所有附近的/可发现的蓝牙设备,包括那些已经配对的,它们在Linux上使用Python。
我知道如何使用地址列出设备的服务,并且可以成功连接:
services = bluetooth.find_service(address='...')
阅读PyBluez文档时,如果不指定任何条件,我希望附近的任何设备都会出现:
"If no criteria are specified, then returns a list of all nearby services detected."
我现在“唯一”需要的是能够列出已经配对的设备,不管它们是开的、关的、在附近还是不在。很像我在Ubuntu/Unity的所有设置中得到的列表-->;蓝牙。
顺便说一句,下面的并没有列出我的机器上已经配对的设备,即使它们在/附近。可能是因为配对后无法发现:
import bluetooth
for d in bluetooth.discover_devices(flush_cache=True):
print d
有什么想法。。。?
编辑:我找到并安装了“bluez工具”。
bt-device --list
。。。提供我需要的信息,即添加设备的地址。
我已经检查了C源代码,发现这可能不像我想象的那么容易。
仍然不知道如何在Python中做到这一点。。。
编辑:我认为DBUS可能是我应该阅读的内容。似乎很复杂。如果有人有代码可以分享,我会很高兴的。:)
我自己设法解决了这个问题。以下代码段列出了所有配对设备在我的默认蓝牙适配器上的地址:
自从采用第5版蓝牙API以来,@Micke解决方案中使用的大多数函数都被删除,并且交互 总线通过ObjectManager.GetManagedObjects[1]进行
在
bt_device
列表中,有包含所需数据的词典: 工业工程例如
参考: [1] http://www.bluez.org/bluez-5-api-introduction-and-porting-guide/
您始终可以将其作为shell命令执行,并读取它返回的内容:
现在
data
将包含一个所有输出行的列表,您可以随意格式化和播放这些输出行。相关问题 更多 >
编程相关推荐