【问题标题】:Find WIFI State in JAVA在 JAVA 中查找 WIFI 状态
【发布时间】:2018-04-17 02:02:50
【问题描述】:

在我的 java 应用程序中,我想查看 wifi 处于什么状态(例如 1 bar、2 bar 或没有 wifi)

我想知道如何在本机 Java 中找到计算机的 wifi 状态,或者通过使用 ping/pong 应用程序,或者我是否必须将 wifi 的状态直接解析到应用程序

任何帮助将不胜感激!

附:我没有使用安卓

【问题讨论】:

  • 首先,我要问你的问题是:你试图解决什么问题?我们可以看看你的代码吗?
  • 无论您是否在这里得到答案,您都不能假设 WiFi 信号一定意味着您的 REST/服务调用会成功。他们可能仍然失败。
  • 我现在没有任何代码,因为我不知道我将如何做到这一点是 java。

标签: java networking network-programming wifi


【解决方案1】:

如果你想覆盖 Windows 平台,那么你可以使用这样的小方法:

public int getWirelessStrength() {
    // The returned integer value is in relation to strength percent.
    // If 75 is returned then the wireless signal strength is at 75%.
    List<String> list = new ArrayList<>();
    int signalStrength = 0;
    String cmd = "netsh wlan show interfaces"; 
    try {
        Process p = Runtime.getRuntime().exec("cmd /c " + cmd);
        p.waitFor();
        try (BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()))) {
            String line;
            while ((line = reader.readLine()) != null) {
                list.add(line);
            }
        }
        if (p.isAlive()) { p.destroy(); }

        // Get the Signal Strength.
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).trim().toLowerCase().startsWith("signal")) {
                String[] ss = list.get(i).split(":");
                if(ss.length == 2) {
                    signalStrength = Integer.parseInt(ss[1].replace("%","").trim());
                }
                break;
            }
        }
    }
    catch (IOException | InterruptedException ex) { 
        Logger.getLogger("getWirelessStrength()").log(Level.SEVERE, null, ex);
    }
    return signalStrength;
}

上述方法利用WindowsNetsh Command-line Utility获取所需信息。返回的整数结果是信号强度的百分比,因此,如果返回 75,则 WiFi 信号强度为 75%。如果您想为 Unix 或 Linux 做类似的事情,那么您可以使用 iwlistiwconfig 命令并以类似的方式解析出所需的信号强度。对于 MAC,我相信您需要使用 Airport Utility

【讨论】:

  • 谢谢!这正是我所需要的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多