用Java获取无线网络的SSID和其他信息

用Java获取无线网络的SSID和其他信息,java,wireless,wifi,Java,Wireless,Wifi,我正在尝试用Java获取我的无线网络设备的SSID。我尝试了官方的网络教程,但是getDisplayName()getName()没有返回SSID。有没有办法得到准确的SSID?此外,我还试图读取我所有网络设备的wifi信号强度,但找不到方法。谁能告诉我从哪里可以获得这些信息(教程、代码示例等) 谢谢您看到了吗这不能用纯Java来完成。JavaAPI可以将您的级别降低到网络堆栈中的级别,但不能降低。当连接到WiFi网络时,所有SSID、握手和安全功能都在较低的级别上完成,即依赖于平台的驱动程序。

我正在尝试用Java获取我的无线网络设备的SSID。我尝试了官方的网络教程,但是getDisplayName()getName()没有返回SSID。有没有办法得到准确的SSID?此外,我还试图读取我所有网络设备的wifi信号强度,但找不到方法。谁能告诉我从哪里可以获得这些信息(教程、代码示例等)


谢谢

您看到了吗

这不能用纯Java来完成。JavaAPI可以将您的级别降低到网络堆栈中的级别,但不能降低。当连接到WiFi网络时,所有SSID、握手和安全功能都在较低的级别上完成,即依赖于平台的驱动程序。JavaAPI(从Java7开始)不允许您更接近这些信息;为此,您必须使用一些依赖于平台的代码

这是当前连接的无线SSID从cmd返回的代码示例

ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "netsh wlan show interfaces");    
builder.redirectErrorStream(true);
Process p = builder.start();

BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while (true) {
    line = r.readLine();
    if (line.contains("SSID")){
        // do something
    }
}

对但它似乎依赖于平台。它还使用dll扩展。我正在寻找完全是java的东西(没有任何特定于Windows的dll)64位用户在尝试使用该库时可能会出现以下错误:“无法在AMD 64位平台上加载IA 32位.dll”。