requestRouteToHost android

时间:2010-03-18 17:27:47

标签: java android networking

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

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

您可能会遇到问题lookupHost()。例如,我不确定this implementation是否支持localhost

答案 2 :(得分:0)

您正在进行的requestRouteToHost(lookupHost())组合风险很大

查看您的代码:

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

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