requestRouteToHost android

大家问候! 我厌倦了android的ConnectivityManager类。 我已经尝试了5个小时来让requestRouteToHost工作。 我在模拟器上运行我的代码,但requestRouteToHost总是失败。 我知道我有连接,因为我调用了getActiveNetworkInfo()并且它已连接。 我添加了ACCESS_NETWORK_STATE和CHANGE_NETWORK_STATE权限无济于事。 任何提示将非常感谢。

编辑——–方法InetAddress.isReachable也失败了。 我正在使用文档中指定的主机名java.sun.com。 我认为这是模拟器的一个问题。 山姆

看起来没有为WiFi实现requestRouteToHost()。 WifiStateTracker私有类没有requestRouteToHost()实现。 相反,基类NetworkStateTracker的默认实现始终返回false。

我建议用真正的主机测试requestRouteToHost() 。 我不仅不相信localhost作为名称必须在Android上被识别,它将是设备/模拟器本身,它既不会通过WiFi也不会通过3G,所以我希望requestRouteToHost()失败。

无论您从哪里获取lookupHost() ,您都可能遇到问题。 例如,我不确定此实现是否支持localhost

您正在执行的requestRouteToHost(lookupHost())组合非常危险

看你的代码:

 conn_man.requestRouteToHost(ConnectivityManager.TYPE_WIFI, lookupHost("localhost"))) 

在这里,您首先进行了主机查找,然后您正在请求它的路由。 它只适用于静态地址(如localhost),没有真正的查找。 如果您需要DNS查找来解析主机地址,它将很容易失败。 通常,requestRouteToHost仅用于静态地址。