如何解决windows经典蓝牙设备每次连接都需要重新配对

爱国 张 0 信誉分
2025-08-08T15:05:35.1833333+00:00

我正在开发一款使用经典蓝牙(spp)管理外部iot设备的app,目前我以及成功实现了蓝牙的连接和通信,但是目前我发现我制作的工具每次连接设备时都需重新配对,请问这有什么办法解决吗?

我在rust中使用下列api搜索/连接设备

use windows::Win32::Devices::Bluetooth::{
    BluetoothAuthenticateDeviceEx, BluetoothFindDeviceClose, BluetoothFindFirstDevice,
    BluetoothFindNextDevice, BluetoothFindFirstRadio,
    BluetoothFindRadioClose, BluetoothGetDeviceInfo, MITMProtectionNotRequired, AF_BTH,
    BLUETOOTH_DEVICE_INFO, BLUETOOTH_DEVICE_SEARCH_PARAMS, BLUETOOTH_FIND_RADIO_PARAMS,
    HBLUETOOTH_DEVICE_FIND, HBLUETOOTH_RADIO_FIND, SOCKADDR_BTH,
};

use windows::Win32::Foundation::{
    CloseHandle, GetLastError, ERROR_NO_MORE_ITEMS, ERROR_SUCCESS, FALSE, HANDLE, TRUE,
    WAIT_OBJECT_0,
};

use windows::Win32::Networking::WinSock::{
    closesocket, connect, recv, send, shutdown, socket, WSACleanup,
    WSAGetLastError, WSAStartup, INVALID_SOCKET, SEND_RECV_FLAGS, SOCKET, SOCK_STREAM,
    WSADATA, WSAEWOULDBLOCK, SD_BOTH,
};


此外我还发现了一个问题,如果再上次配对后不关闭设置中的配对窗口就立刻进行下一次配对似乎会导致配对窗口无法正常弹出,请问这是我的问题还是系统本身的bug,以及如何解决这个问题?

开发人员技术 | Windows 窗体
0 个注释 无注释
{count} 票

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。