如何使用Qt获得wifi信号强度?

时间:2013-10-29 06:41:58

标签: c++ qt

到目前为止,我能够使用QNetworkConfigurationManager :: allConfigurations()扫描所有可用的wifi,但是每个的QNetworkConfiguration数据都没有wifi信号强度。你能指点我如何获得这些数据吗?谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用QProcess并运行命令行命令来扫描wifi网络。使用正则表达式解析包含wifi网络所有细节的命令行输出。

如果您使用的是linux,那么命令是“iwlist scan”

答案 1 :(得分:2)

我不确定你甚至可以在普通桌面上做到这一点(我的意思是只使用Qt)。 Qt只是没有与设备的通用接口来获得这样的东西。我不确定你使用的操作系统,但最适合你的是连接操作系统并从中获取信息或直接通过驱动程序与设备通信。这两种方法都很困难,尤其是因为您需要文档,而且:

  • 对于第一种方法,通过驱动程序进行链接 - 这只适用于特定的驱动程序,除非以许多驱动程序通用的方式报告信号强度。
  • 对于第二种方法,通过系统链接 - Linux发行版之间可能存在细微的差别,这可能会使您无法在它们之间移植应用程序。对于Windows而言,Linux也是如此,我无法保证(我甚至会说“方式”,但我不确定......)两个系统都使用相同的方法来报告用户的信号强度。

无论您决定做什么,都可以使用标准操作系统功能来完成目标。例如,在Windows中,您可以使用WlanGetAvailableNetworkList()。据我所知,它将提供一种名为IRSSI的东西,它是直接信号强度指示器:)

享受:)