C ++ Visual Studio Bluetooth адаптер включен - PullRequest
0 голосов
/ 27 января 2020

У меня есть проект UWP, который связывается с устройством Bluetooth LE. Связь работает нормально, но я хотел бы добавить один шаг перед установлением связи, которая проверяет, включен ли Bluetooth со стороны Windows (10):

Bluetooth switch

В данный момент я использую класс Windows :: Devices :: Bluetooth :: BluetoothAdapter и вызываю метод getDefaultAsyn c () для получения фактического интерфейса. Когда я выключаю с помощью переключателя Windows, интерфейс все еще там. Вот что произойдет, если я выключу переключатель:

Switch ON ---------> Switch 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, если отключу его прямо в диспетчере устройств, например:

disabling

Я также пытался использовать свойство DeviceInformation.IsEnabled, но такое же поведение Есть ли способ проверить, включен ли переключатель Bluetooth на Windows? Заранее спасибо.

1 Ответ

1 голос
/ 29 января 2020

Так что есть ответ на этот вопрос. Копирование ссылки предоставлено в разделе комментариев. Это дублированный вопрос. Вот ссылка на ответ:

Как проверить, включен ли Bluetooth на устройстве

...