2015-12-20 18 views
0

僅當WIFI被禁用且手機正在使用移動數據時,此問題纔會生效。 如果我有WIFI連接,那麼應用程序工作正常。android urlConnection.getInputStream在禁用WIFI時拋出異常

下面是詳細代碼:

清單:

使用許可權的android:NAME = 「android.permission.INTERNET對」

使用許可權的android:NAME =「android.permission.ACCESS_NETWORK_STATE 「

的Android Java代碼:

私人字符串getUrlContents(字符串theUrl){

StringBuilder content = new StringBuilder(); 

try { 
    URL url = new URL(theUrl); 
    URLConnection urlConnection = url.openConnection(); 
    BufferedReader bufferedReader = new BufferedReader(
      new InputStreamReader(urlConnection.getInputStream()), 8); 
    String line; 
    while ((line = bufferedReader.readLine()) != null) { 
     content.append(line + "\n"); 
    } 
    bufferedReader.close(); 

}catch (Exception e) { 
    e.printStackTrace(); 
} 

return content.toString(); 

}

異常被拋出在這個函數:

的java.net.UnknownHostException:無法解析主機 「maps.googleapis.com」:沒有與主機名關聯的地址

哪裏URL值是:

https://maps.googleapis.com/maps/api/place/search/json?&location=42.2793153,-71.5005702&radius=5000&types=restaurant&sensor=false&key=AIzaSyDX-nKc9OFD_jW-73nwyfEaqFGfwzS6WRI

本u rl當在網址上粘貼時,它工作正常,並給我正確的json值。

此外,這種異常不會發生在WIFI連接。

任何幫助將不勝感激。

回答

0

UnknownHostException意味着服務器地址無法解析,因爲沒有互聯網(DNS)連接。這可能發生,例如。因爲移動數據傳輸被禁用(在設備或操作員端)或連接設置(APN)不正確。

+0

謝謝,但我確實檢查了谷歌地圖和Chrome應用程序工作正常,當設備的移動數據打開。因此該設備具有互聯網連接。我還有什麼可以嘗試的,可能是某種形式的等待或重試機制? – user3495604