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

概述我拿起了我的一些旧代码进行重建,其中一种用于我的平板电脑和手机的方法不再有效.我正在尝试使用我在这里获取的例程来获取我的IP地址. 当程序执行第4行(以“for(枚举…”开头),它立即跳转到异常捕获部分.异常没有消息,对于字符串,ex.getMessage()返回null.异常编号是830034796568(十进制). 这是代码.如上所述,一年前这种方法运作良好. 谢谢你的帮助! public S 我拿起了我的一些旧代码进行重建,其中一种用于我的平板电脑和手机的方法不再有效.我正在尝试使用我在这里获取的例程来获取我的IP地址.

当程序执行第4行(以“for(枚举…”开头),它立即跳转到异常捕获部分.异常没有消息,对于字符串,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()抛出带有空消息字符串的异常全部内容,希望文章能够帮你解决android – NetworkInterface.getNetworkInterfaces()抛出带有空消息字符串的异常所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1138906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存