Python 与 Bleak - 与需要 PIN 码的设备配对

问题描述 投票:0回答:1

我正在尝试从蓝牙设备读取一些特征。该设备需要 Pin 来配对,但我找不到任何有关如何使用 python-bleak 输入 pin 的资源。

我的代码如下。它将成功连接并获取服务。任何与设备绑定的尝试都会出现错误。

bleak.exc.BleakError:无法与设备配对:19

是否可以使用 python-bleak 与需要 pin 的设备进行配对?如果没有,是否有其他方法使用 python 与设备配对?

import asyncio
from bleak import BleakScanner, BleakClient, exc, BLEDevice, backends
from typing import Any, List, Dict

deviceAdress = "zz:yy:xx:ww:vv:uu".upper()

fixedPin = "012345"

async def GetServices(client:BleakClient) -> backends.service.BleakGATTServiceCollection:
    services = await client.get_services()
    return services

async def main():
    device:BLEDevice = await BleakScanner.find_device_by_address(deviceAdress)
    print(device)

    client:BleakClient = BleakClient(device, timeout=60)
    try:
        connectResults = await client.connect()
    except Exception as e:
        print(e)

    await GetServices(client)          # Successfully gets services

    pairResults = await client.pair()  # Fails here


asyncio.run(main())
python bluetooth python-bleak
1个回答
0
投票

您使用什么操作系统?在 Windows 上,当 Bleak 连接到允许您输入 PIN 的设备时,应该会出现一个消息框。 Bleak 目前不支持以编程方式进行 PIN 配对(请参阅 https://github.com/hbldh/bleak/discussions/767#discussioncomment-5292532)。

© www.soinside.com 2019 - 2024. All rights reserved.