我的应用程序没有显示出互联网在连接到便携式路由器
问题描述:
我有下面的代码检查,如果我有有效的互联网连接:我的应用程序没有显示出互联网在连接到便携式路由器
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
答
试试这个
- 检查以确保它是
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" />
您应该记录'IOException'并发布完整的异常详细信息。 –
java.net.SocketTimeoutException:3000ms后无法连接到www.screens.company/80.179.142.52(端口80) – OrrGorenn
您可能只是网络较慢。如果你增加连接超时,它是否工作? –