我有一个检测连接状态的方法
boolean isInternetAvailable(WebView view) {
Boolean connected = false;
try {
ConnectivityManager connectivityManager = (ConnectivityManager) view.getContext()
.getSystemService(view.getContext().CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
connected = networkInfo != null && networkInfo.isAvailable() &&
networkInfo.isConnected();
Log.d("available", Boolean.toString(networkInfo.isAvailable()));
Log.d("connected", Boolean.toString(networkInfo.isConnected()));
Log.d("compare", Boolean.toString(networkInfo.getState() == NetworkInfo.State.CONNECTED));
return connected;
} catch (Exception e) {
}
return connected;
}
但是当我从我的电脑上断开所有互联网电缆时,我实际上无法加载任何页面,模拟器仍然认为他连接的是什么并返回
11-21 13:43:22.103 20824-20824/lt.example.app D/available: true
11-21 13:43:22.103 20824-20824/lt.example.app D/connected: true
11-21 13:43:22.103 20824-20824/lt.example.app D/compare: true
控制台,这个方法在WebViewClient中使用,用于在使用WebView时检测连接,可以是什么?
最佳答案
问题是,您的模拟器并不真正关心您机器上的实际连接状态。您可能需要在模拟器上启用/禁用飞行模式才能获得正确结果。
只要您的模拟器启用了 wifi/数据,它就会告诉您是的,我已连接,即使您无法连接到互联网也是如此。
如果您想检查工作连接,请参阅:Android check internet connection (isInternetAvailable()
)
关于java - Android studio 模拟器连接状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47414682/