В Android я нашел имена сетевых интерфейсов и IP-адреса, связанные с этим интерфейсом, с помощью приведенного ниже кода.
// Iterate over all network interfaces.
for (Enumeration<NetworkInterface> en =
NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)
{
NetworkInterface intf = en.nextElement();
// Iterate over all IP addresses in each network interface.
for (Enumeration<InetAddress> enumIPAddr =
intf.getInetAddresses(); enumIPAddr.hasMoreElements();)
{
InetAddress iNetAddress = enumIPAddr.nextElement();
// Loop back address (127.0.0.1) doesn't count as an in-use IP address.
if (!iNetAddress.isLoopbackAddress())
{
sLocalIP = iNetAddress.getHostAddress().toString();
sInterfaceName = intf.getName();
}
}
}
Из-за того, что имя сетевого интерфейса может отличаться от производителя к производителю, а также может различаться в разных устройствах одного производителя.
Как определить, какой сетевой интерфейс предназначен для Wi-Fi, 3G, 4G (LTE) и VPN в Android?
ConnectivityManager
не предоставляет никакой информации о сетевом интерфейсе. - person Priyank Patel   schedule 09.07.2014