gpt4 book ai didi

android - NetworkInterface.getNetworkInterfaces() 抛出带有空消息字符串的异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:30:54 24 4
gpt4 key购买 nike

我拿起我的一些旧代码进行重建,曾经在我的平板电脑和手机上使用的方法之一不再有效。我正在尝试使用我在此处选择的例程来获取我的 IP 地址。

当程序执行到第 4 行(以“for (Enumeration...”开始)时,它立即跳转到异常捕获部分。异常没有消息,对于字符串,ex.getMessage() 返回 null。异常编号是 830034796568(十进制)。

这是代码。如前所述,这在一年前运行良好。

感谢您的帮助!

public String getLocalIpAddress() {
String address= null;
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
address = new String(inetAddress.getHostAddress().toString());
if (!inetAddress.isLoopbackAddress() && address.length() < 18) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
String msg = ex.getMessage();
//do nothing
}
return null;
}

最佳答案

只是为了澄清一个完整的答案。

NetworkInterface.getNetworkInterfaces()

如果应用程序在 AndroidManifest.xml 中缺少此权限,则抛出 SocketException

<uses-permission android:name="android.permission.INTERNET" />

在我的测试中(在 Android 4.4.2 上)android.permission.ACCESS_NETWORK_STATE 可以跳过。

关于android - NetworkInterface.getNetworkInterfaces() 抛出带有空消息字符串的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16127263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com