我有一个问题,如果我尝试InetAddress.getLocalHost()甚至InetAddress.getByName(String host)它每次都会抛出异常,即使对于像nba.com这样的已知网站我也有点困惑FYI目标设备是一个Android 4.1.1 GS3和WiFi和移动网络都在。代码
try{
InetAddress ownIP=InetAddress.getLocalHost();
System.out.println("IP of my Android := "+ownIP.getHostAddress());
}catch (Exception e){
System.out.println("Exception caught ="+e.getMessage());
String t = e.getMessage() + "yes";
}
以下是System.out
03-12 18:59:52.636:I / System.out(18996):异常捕获= null
提前致谢
答案 0 :(得分:2)
我使用一种棘手的方法来获取自己的IP。你可以看看它是否对你有帮助
String getIP() {
try {
Socket socket = new Socket("google.com", 80);
return socket.getLocalAddress().getHostAddress();
} catch (Exception e) {
}
}
答案 1 :(得分:2)
我相信我已经发现了我的问题基本上我猜你不允许在Android主线程中执行任何网络操作这是以前可选的,现在是Honeycomb(API 11)所需要的,以下是根据谷歌规范发表评论。
“为防止阻止主用户界面线程,Google建议使用android.os包中的AsyncTask类:”
所以我创建了一个新类NetTask,它扩展了AsyncTask并执行所有网络应用程序,所以现在我的代码正在运行。 IDK,如果其他人都知道,但我想我会发布这个以防万一像我这样的新手还在寻找解决方案:) !!!
由于