java - isNetworkConnected() Android Pie 9.0 的问题
问题描述
我正在使用此代码来检查网络是否已连接。它在最高8.1的所有 Android 版本上都能完美运行, 但自从 Android Pie 以来,它总是显示我没有连接!
private boolean isNetworkAvailable() {
final ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
final NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo == null || !networkInfo.isConnected()) {
onUpdateNetworkStatus(false);
return false;
}
final Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
final URL url = new URL("http://clients3.google.com/generate_204");
final HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestProperty("User-Agent", "Android");
httpURLConnection.setRequestProperty("Connection", "close");
httpURLConnection.setConnectTimeout(1500);
httpURLConnection.connect();
onUpdateNetworkStatus(httpURLConnection.getResponseCode() == 204 && httpURLConnection.getContentLength() == 0);
} catch (Exception e) {
onUpdateNetworkStatus(false);
}
}
});
thread.start();
return true;
}
解决方案
推荐阅读
- javascript - 如何减少检查此 leetcode 中每个值的时间?
- r - 如何在 R 中使用 purrr 和 rvest 从网页中抓取成绩单?
- c# - WPF listView 获取选中项
- vue.js - Vue Nuxt Routes,如何让它更简单
- javascript - 更改为 Javascript 中的链接
- python - 使用 libclang 获取 MACRO 语句的 AST
- django - 使用 Django 和报告实验室添加表格
- php - 在 Doctrine QueryBuilder OrderBy 中使用 IF 语句
- python - Python paho-mqtt 延迟连接状态
- javascript - 如何按日期搜索 Google Drive API?