如何在java中获取wifi网络接口名称

如何在java中确定wifi网络接口名称?     
已邀请:
既然你说你在Android上开发使用这个:
WifiManager wifiManager = (WifiManager) this.getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
System.out.println(wifiInfo.getSSID());
这将返回您的WIFI的名称。 您必须将此权限添加到清单中。
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    
你能说明吗?您想要连接网络的SSID吗?或者网络适配器的名称?我提供了一个示例来获取所有网络接口的名称。
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements())
{
    NetworkInterface networkInterface = (NetworkInterface) networkInterfaces.nextElement();
    System.out.println(networkInterface.getDisplayName());
}
如果您只想选择WLAN接口,可能必须通过JNI执行此操作,否则您可以检查“wlan”的出现名称(如eth0,eth1等)。我不建议仅依赖此命名约定。
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements())
{
    NetworkInterface networkInterface = (NetworkInterface) networkInterfaces.nextElement();
    if(networkInterface.getName().startsWith("wlan")) {
        System.out.println(networkInterface.getDisplayName());
    }
}
    
尝试: NetworkInterface.getNetworkInterfaces(); 这将返回您机器上的所有接口。     
如果您正在使用Wi-Fi接口并且仅使用Wi-Fi接口,那么解析/ proc / net / wireless是继续使用Android的方法:
public static String getInterfaceName() {
    try
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("/proc/net/wireless")));

        // skip header
        reader.readLine();
        reader.readLine();

        // read first interesting line
        String ifLine = reader.readLine();
        reader.close();

        // extract interface name
        String ifName = ifLine.substring(0, ifLine.indexOf(':'));

        return ifName.trim();
    }
    catch(Exception e) {
        e.printStackTrace();
        return null;
    }
}
    

要回复问题请先登录注册