java - 错误 SocketTimeoutException 在 android 中连接到 google
问题描述
我的应用程序(Android)的连接有问题。我正在使用以下代码检查我是否有互联网连接。
ConnectivityManager cm = (ConnectivityManager)context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected()) {
try {
URL url = new URL("http://www.google.com/");
HttpURLConnection urlc = (HttpURLConnection)url.openConnection();
urlc.setRequestProperty("User-Agent", "test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(5000); // mTimeout is in seconds
urlc.connect();
if (urlc.getResponseCode() == 200) {
return true;
} else {
return false;
}
} catch (IOException e) {
Log.i("warning", "Error checking internet connection", e);
return false;
}
}
在尝试了几次之后,我遇到的问题是我正在对“www.google.com.”进行 ping。我不明白为什么会这样。在我的项目的最后 2 年里,这段代码运行良好。
解决方案
如果您在最新版本的 android 上对此进行测试,则需要验证您是否已将域列入白名单。您应该阅读以下内容: https ://developer.android.com/training/articles/security-config
作为快速修复,您可以将以下属性添加到应用程序标签:
android:usesCleartextTraffic="true"
推荐阅读
- intellij-idea - 如何创建 SBT 任务来测试 Play Framework 中的 scala 代码
- c++ - 为什么在这段代码中内联汇编器有时更快,有时更慢?每次运行的执行时间变化很大
- forms - Microsoft Access 中是否有 V-lookup 效果?
- python - 从 pipenv 目录生成 python 可执行文件
- nativescript-angular - 在 iOS 的 nativescript 中,我可以更改 webview 浏览器客户端吗
- windows - 增强/扩展对话框时降低资源文件增长速度的方法
- javascript - TableSorter 2.0 未检测到解析器
- here-api - 来自自由格式地址或部分地址查找 api 的纬度经度
- python - Python隐藏控制台窗口
- r - 如何在 R 中将数据帧与顺序行名结合起来?