我正在尝试找出是否有用于 Java 的 Wifi API。可以连接到 Wifi 网络并扫描它们(以查找设备)的东西。我似乎找不到类似的东西。有什么建议么?谢谢!
PS 我知道适用于 Android 的 WifiManager,但我不是为 Android 开发的,我正在使用 JDK 6 进行开发。
我正在尝试找出是否有用于 Java 的 Wifi API。可以连接到 Wifi 网络并扫描它们(以查找设备)的东西。我似乎找不到类似的东西。有什么建议么?谢谢!
PS 我知道适用于 Android 的 WifiManager,但我不是为 Android 开发的,我正在使用 JDK 6 进行开发。
无线网卡因制造商甚至版本而有很大差异,并且大多数操作系统没有与它们交互的标准化方式。有些电脑甚至没有配备无线网卡。它与 Android 配合得如此出色的原因是,Google 可以保证每部安装了 Android 的手机都有适当的无线网络接口。
tl;博士不,对不起
您可以借助命令行工具获取可用网络列表,使用命令“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;
}