Android 为什么InetAddress.getByName().isRecable()可以在设备上工作,但不能在Eclipse AVD上工作?

Android 为什么InetAddress.getByName().isRecable()可以在设备上工作,但不能在Eclipse AVD上工作?,android,networking,ping,avd,connection,Android,Networking,Ping,Avd,Connection,我用一段简单的代码测试设备是否在网络中: ip_addr="172.16.1.24"; isAvailable = InetAddress.getByName(ip_addr).isReachable(2000); 即使ip_addr是可连接的,并且随后使用http向其发出的请求将成功,该代码在我的Eclipse AVD上也将始终返回false 另一方面,如果应用程序安装在accual android平板电脑上,它将按预期工作,如果ip地址可访问,isAvailable将反映事实 这使得调试非

我用一段简单的代码测试设备是否在网络中:

ip_addr="172.16.1.24";
isAvailable = InetAddress.getByName(ip_addr).isReachable(2000);
即使ip_addr是可连接的,并且随后使用http向其发出的请求将成功,该代码在我的Eclipse AVD上也将始终返回false

另一方面,如果应用程序安装在accual android平板电脑上,它将按预期工作,如果ip地址可访问,isAvailable将反映事实


这使得调试非常困难,因为我不能再依赖仿真器了。

你确定仿真器可以访问你的地址吗?你能解释一下这个地址是什么意思吗?它是否在wifi网络中?您如何检查它是否可以访问?我100%肯定该设备可以从模拟器访问。这是一个服务器/路由器,我通过http查询一些统计信息,然后根据数据创建一个图。该软件通过http与设备通信的部分在模拟器、平板电脑和平板电脑中都运行良好。因此,当我通过TCP/IP从AVD获取有效数据时,服务器/路由器可以在AVD中连接。问题在于上面的代码,它在模拟器AVD和平板电脑本身中表现不同。在平板电脑中,它将显示设备的真实状态。在AVD中,isAvailable始终返回false。