2010-03-18 32 views
0

問候大家! 我越來越厭倦了android的ConnectivityManager類。我一直在嘗試5個小時來讓requestRouteToHost工作。我在模擬器上運行我的代碼,但requestRouteToHost總是失敗。我知道我有連接性,因爲我調用了getActiveNetworkInfo()並且它已連接。我已經添加ACCESS_NETWORK_STATE和CHANGE_NETWORK_STATE權限無濟於事。任何提示將非常感謝。requestRouteToHost android

編輯-------- InetAddress.isReachable方法也失敗。我正在使用文檔中指定的主機名java.sun.com。我認爲這是模擬器的問題。 山姆

+0

任何機會讓你的代碼,以便我們可以找出可能出錯。史蒂夫 – Steve 2010-03-18 17:43:43

+0

好吧,當然。但是,沒有什麼可看的。我的意思是你想看到什麼部分? – 2010-03-18 17:51:14

+0

我不是一個noob或任何東西,我其實對android平臺非常有經驗。這讓我感到困惑! – 2010-03-18 17:51:42

回答

0

我會建議測試requestRouteToHost()與一個真正的主機。不僅我不確定localhost作爲一個名稱必須在Android上識別,它將成爲設備/模擬器本身,它將通過WiFi或3G都不會出現,因此我預計requestRouteToHost()會失敗。

您可能會遇到問題,無論您從哪裏獲取lookupHost()。例如,我不確定this implementation是否支持localhost

+0

我試過一個真正的主機。我試過google.com。什麼都沒有親切的建議,雖然 – 2010-03-18 19:27:23

+0

我也讀過ICS之前的錯誤報告。 http://stackoverflow.com/questions/8322481/requestroutetohost-returns-false-on-wifi-interface如果你知道的東西,請與社區分享? – 2012-05-29 19:06:41

2

看起來像requestRouteToHost()沒有實現WiFi。 WifiStateTracker私有類沒有requestRouteToHost()實現。相反,基類NetworkStateTracker的默認實現總是返回false。

0

的requestRouteToHost(lookupHost())你正在做的組合是非常危險的

看到你的代碼:

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

在這裏,你首先做了一個主機查找,接下來您請求的路徑它。它只適用於靜態地址(如本地主機),沒有真正的查找完成。如果您需要DNS查找來解析主機地址,它將很容易失敗。 通常,requestRouteToHost只適用於靜態地址。