2017-10-20 85 views
0

我有下面的代碼檢查,如果我有有效的互聯網連接:我的應用程序沒有顯示出互聯網在連接到便攜式路由器

private boolean hasNetworkAccess() { 
    try { 
     HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.screens.company").openConnection()); 
     urlc.setRequestProperty("User-Agent", "Test"); 
     urlc.setRequestProperty("Connection", "close"); 
     urlc.setConnectTimeout(3000); 
     urlc.connect(); 
     return (urlc.getResponseCode() == 200); 
    } catch (IOException e) { 
     Log.e("NETWORK", "Error checking internet connection."); 
    } 
    return false; 
} 

當我連接/我的Wi-Fi在家裏連接到我的手機熱點/直接連接到我的路由器 - 一切正常,它顯示我有活動的連接。

當我將我的電腦連接到便攜式路由器(TP-LINK)時,出現錯誤。

什麼可能是錯誤,只是我是我的便攜式路由器?

PS我檢查,當我連接到像互聯網瀏覽器,YouTube等路由器

錯誤堆棧跟蹤一切工作:

java.net.SocketTimeoutException: failed to connect to www.screens.company/80.179.142.52 (port 80) after 3000ms 
+0

您應該記錄'IOException'併發布完整的異常詳細信息。 –

+0

java.net.SocketTimeoutException:3000ms後無法連接到www.screens.company/80.179.142.52(端口80) – OrrGorenn

+0

您可能只是網絡較慢。如果你增加連接超時,它是否工作? –

回答

0

試試這個

  • 檢查以確保它是connected to a network

public boolean isNetworkAvailable(Context context) { 
    final ConnectivityManager connectivityManager = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)); 
    return connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo().isConnected(); 
} 

  • 替代溶液

public boolean isInternetAvailable() { 
    try { 
     final InetAddress address = InetAddress.getByName("www.google.com"); 
     return !address.equals(""); 
    } catch (UnknownHostException e) { 
     // Log error 
    } 
    return false; 
} 

-Permission需要


<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
+0

仍然一切正常,但我沒有互聯網連接 – OrrGorenn

+0

你有'互聯網'''權限' –

+0

當然,當我連接到我的家庭無線上網 - 一切正常。 – OrrGorenn

相關問題