Как получить силу сигнала Wi-Fi с помощью Qt?

Пока я могу сканировать все доступные wifi с помощью QNetworkConfigurationManager:: allConfigurations(), но данные QNetworkConfiguration для каждого из них не имеют силы сигнала Wi-Fi. Можете ли вы указать мне, как получить эти данные? Спасибо!

Ответ 1

Я не уверен, что вы даже можете сделать это на обычном рабочем столе в любом случае (я имею в виду только использование Qt). Qt просто не имеет общего интерфейса с устройством для получения таких вещей. Я не уверен, какую ОС вы используете, но лучшим ударом для вас является связь с ОС и получение информации от нее или разговор с устройством напрямую через драйвер. Оба метода сложны, особенно потому, что вам нужны документы, и более того:

  • Для первого метода, связываясь с драйвером - это будет работать только для конкретного драйвера, если не будет указана сила сигнала, обычная для многих драйверов.
  • Для второго метода, связывающего систему - может быть небольшое различие между linux-дистрибутивами, которое может сделать вас неспособным сделать приложение переносимым между ними. То же самое касается Windows для Linux, нет гарантии (я бы даже сказал "способ", но я не уверен, так...), что обе системы используют те же самые методы, чтобы сообщать о силе сигнала для пользователя.

что бы вы ни выбрали, вы можете использовать стандартные функции ОС для достижения цели. Например, в окнах вы можете использовать WlanGetAvailableNetworkList(). Насколько я помню, это обеспечит что-то под названием IRSSI, которое является индикатором прямого сигнала:)

наслаждайтесь:)

Ответ 2

Вы можете использовать QProcess и запускать команды командной строки для сканирования сетей Wi-Fi. Используйте регулярные выражения для синтаксического анализа вывода командной строки, который содержит все сведения о сети Wi-Fi.

Если вы используете linux, тогда команда "iwlist scan"