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
我有一个与低功耗蓝牙设备通信的 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