在安卓中,我通过以下代码找到了与网络接口相关联的接口名称和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();
}
}
}
由于网络接口名称可能因制造商而异,同一制造商的不同设备之间也可能存在差异。
在安卓系统中如何确定哪个网络接口用于wifi、3G、4G(LTE)和VPN?
ConnectivityManager
不提供任何有关网络接口的信息。 - Priyank Patel