11

我正在尝试找出是否有用于 Java 的 Wifi API。可以连接到 Wifi 网络并扫描它们(以查找设备)的东西。我似乎找不到类似的东西。有什么建议么?谢谢!

PS 我知道适用于 Android 的 WifiManager,但我不是为 Android 开发的,我正在使用 JDK 6 进行开发。

4

2 回答 2

8

无线网卡因制造商甚至版本而有很大差异,并且大多数操作系统没有与它们交互的标准化方式。有些电脑甚至没有配备无线网卡。它与 Android 配合得如此出色的原因是,Google 可以保证每部安装了 Android 的手机都有适当的无线网络接口。

tl;博士不,对不起

于 2013-04-08T01:00:51.740 回答
3

您可以借助命令行工具获取可用网络列表,使用命令“netsh wlan show networks mode=Bssid”。试试下面的java方法。

public static ArrayList scanWiFi() {
        ArrayList<String> networkList = new ArrayList<>();
        try {
            // Execute command
            String command = "netsh wlan show networks mode=Bssid";
            Process p = Runtime.getRuntime().exec(command);
            try {
                p.waitFor();
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
            BufferedReader reader = new BufferedReader(
                    new InputStreamReader(p.getInputStream())
            );
            String line;
            StringBuilder sb = new StringBuilder();
            String ssidArr[];

            while ((line = reader.readLine()) != null) {
                //System.out.println(line);
                if (line.contains("SSID ") && !line.contains("BSSID ")) {
                    sb.append(line);
                    networkList.add(line.split(":")[1]);
                    //System.out.println("data : " + ssidArr[1]);
                }
            }
            //System.out.println(networkList);            
        } catch (IOException e) {
        }
        return networkList;
    }
于 2017-07-23T11:21:09.060 回答