如何在Java中获取WiFi网络接口名称

5
如何在Java中确定WiFi网络接口名称?
4个回答

3

由于您说您正在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" />

1
你能具体说明吗?你想要连接的网络的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());
    }
}

从这个列表中,如何识别接口是否为wifi接口? - dheeps
我调整了我的答案,这有帮助吗? - Christopher Klewes
@dheeps,你找到解决方案了吗?如何获取wifi接口的名称? - Shobhit Puri

0
如果你只需要Wi-Fi接口,那么在Android上解析/proc/net/wireless是最好的方法:
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;
    }
}

-2

4
从这个列表中,如何辨别接口是否为wifi? - dheeps
你在开发安卓吗? - dogbane
1
是的。但我希望能够从本地Java API中找到接口类型的方法。 - dheeps

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接