我有一种检测连接状态的方法
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/data,它就会告诉您是的,即使您无法访问互联网,我也已连接。
如果要检查工作连接,请参阅:Android 检查互联网连接( isInternetAvailable()
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句