转向Android Marshmallow API后,我在代码中使用org.apache.http.conn.util.InetAddressUtils
的InetAddressUtils.isIPv4Address(ipAddress)
来列出设备中的所有IP地址。
作为API-23更改的一部分,InetAddressUtils
类现在已经删除。
那么现在我该如何替换以下代码?
public static String ipAddress() {
try {
for (final Enumeration<NetworkInterface> enumerationNetworkInterface = NetworkInterface.getNetworkInterfaces(); enumerationNetworkInterface.hasMoreElements();) {
final NetworkInterface networkInterface = enumerationNetworkInterface.nextElement();
for (Enumeration<InetAddress> enumerationInetAddress = networkInterface.getInetAddresses(); enumerationInetAddress.hasMoreElements();) {
final InetAddress inetAddress = enumerationInetAddress.nextElement();
final String ipAddress = inetAddress.getHostAddress();
if (! inetAddress.isLoopbackAddress() && InetAddressUtils.isIPv4Address(ipAddress)) {
return ipAddress;
}
}
}
return null;
}
catch (final Exception e) {
LogHelper.wtf(null, e);
return null;
}
}
inetAddress instanceof Inet6Address
或者inetAddress instanceof Inet4Address
。 - rekireInetAddressUtils.isIPv4Address(ipAddress)
。 - shkschneider