Python:如何连接蓝牙设备?(Linux)

我需要所有连接的蓝牙设备到我的电脑。我找到了图书馆,但我无法连接设备


简单查询示例:


    import bluetooth


    nearby_devices = bluetooth.discover_devices(lookup_names=True)

    print("Found {} devices.".format(len(nearby_devices)))


    for addr, name in nearby_devices:

        print("  {} - {}".format(addr, name))


鸿蒙传说
浏览 271回答 2
2回答

慕勒3428872

问题中的代码片段正在扫描新设备,而不是报告已连接的设备。作为如何在 Python3 中实现它的示例:import pydbusbus = pydbus.SystemBus()adapter = bus.get('org.bluez', '/org/bluez/hci0')mngr = bus.get('org.bluez', '/')def list_connected_devices():    mngd_objs = mngr.GetManagedObjects()    for path in mngd_objs:        con_state = mngd_objs[path].get('org.bluez.Device1', {}).get('Connected', False)        if con_state:            addr = mngd_objs[path].get('org.bluez.Device1', {}).get('Address')            name = mngd_objs[path].get('org.bluez.Device1', {}).get('Name')            print(f'Device {name} [{addr}] is connected')if __name__ == '__main__':    list_connected_devices()

慕的地8271018

使用前需要安装依赖布鲁斯代码def get_connected_devices():    bounded_devices = check_output(['bt-device', '-l']).decode().split("\n")[1:-1]    connected_devices = list()    for device in bounded_devices:        name = device[:device.rfind(' ')]        #mac_address regex        regex = '([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})|([0-9a-fA-F]{4}\\.[0-9a-fA-F]{4}\\.[0-9a-fA-F]{4})$'        mac_address = re.search(regex, device).group(0)        device_info = check_output(['bt-device', '-i', mac_address]).decode()        connection_state = device_info[device_info.find('Connected: ') + len('Connected: ')]        if connection_state == '1':            connected_devices.append({"name": name, "address": mac_address})    return connected_devices
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python