欢迎访问宙启技术站
智能推送

在Python中使用bluepy.btle库获取蓝牙外围设备的名称

发布时间:2023-12-24 03:04:19

在Python中使用bluepy.btle库获取蓝牙外围设备的名称需要使用bluepy.btle.Peripheral类的scan()方法进行扫描,并通过解析扫描结果获取设备的名称。下面是一个具体的示例:

from bluepy.btle import Scanner

# 创建一个扫描对象
scanner = Scanner()

# 开始扫描设备
devices = scanner.scan(5.0)  # 扫描5秒钟

# 遍历扫描结果
for dev in devices:
    # 获取设备的地址和名称
    addr = dev.addr
    name = dev.getValueText(9)  # 获取设备名称的类型为Complete Local Name的结果(值为9)

    # 如果设备名称不为空,则打印设备信息
    if name:
        print("Device {}: {}".format(addr, name))

上述代码首先导入了Scanner类,并创建了一个Scanner对象。然后使用scan()方法对设备进行扫描,该方法的参数为扫描的超时时间,单位为秒。接下来,遍历扫描结果,并获取每个设备的地址和名称。在bluepy.btle库中,设备的名称是以字典的形式存储的,其中每个字典项对应一个设备的属性,通过getValueText()方法可以根据属性类型获取相应的值。在这个示例中,我们使用属性类型为Complete Local Name的结果。最后,判断设备名称是否为空,如果不为空则打印设备信息。

需要注意的是,使用bluepy库需要先执行 sudo apt-get install python3-pip libglib2.0-dev 来安装必要的依赖。

以上是一个简单的示例展示了如何使用bluepy.btle库获取蓝牙外围设备的名称。通过这种方法,你可以进一步探索设备的其他属性和操作。