C++ Visual Studio 蓝牙适配器已启用

C++ Visual Studio Bluetooth adapter is enabled

我有一个与低功耗蓝牙设备通信的 UWP 项目。通信工作正常,但我想在建立通信之前添加一个步骤,即检查蓝牙是否从 Windows (10) 端启用:

目前,我正在使用 class Windows::Devices::Bluetooth::BluetoothAdapter 并调用方法 getDefaultAsync() 来获取实际界面。当我使用 Windows 开关关闭 if off 时,界面仍然存在。如果我关闭开关会发生这种情况:

--------->

这是代码片段:

HANDLE done = CreateEvent(NULL, FALSE, FALSE, NULL);
auto getadapter_op = Windows::Devices::Bluetooth::BluetoothAdapter::GetDefaultAsync();
auto getadapter_optask = create_task(getadapter_op);
getadapter_optask.then([done](Windows::Devices::Bluetooth::BluetoothAdapter^ adapter) {
    if (adapter != nullptr)
    {
        defaultBtInterface = adapter;
    }
    SetEvent(done);
    });

if (WaitForSingleObject(done, 10000) != WAIT_OBJECT_0)
{
}
else
{
}
CloseHandle(done);

if (defaultBtInterface == nullptr) // bluetooth interface is not available
{
    printf("Warning: No bluetooth adpter was found\n");
    return;
}

问题是即使我关掉开关,界面还在。如果我直接在设备管理器上禁用它,我只会得到一个 nullptr,如下所示:

我也尝试使用 DeviceInformation.IsEnabled 属性 但行为相同。 有什么方法可以检查 Windows 上是否启用了蓝牙开关? 提前致谢。

这样这个问题就有答案了。复制评论部分提供的link。这是一个重复的问题。这是一个 link 的答案:

How to check if bluetooth is enabled on a device