java - Android studio 模拟器连接状态

标签 java android

我有一个检测连接状态的方法

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/

相关文章:

java - HTTP 状态 500 - Servlet 执行引发异常 (java.lang.ClassNotFoundException)

java - 循环中的结果回调(从谷歌驱动器下载多张图片。)

java - GWT 在客户端打开 Windows 资源管理器/文件资源管理器

android - 在Android中,滑动切换屏幕时如何显示双屏动画

android - Google 云端硬盘 REST API 注销

Android volley 不会在 POST 请求中调用 getParams

android - 如何禁用主要 Activity 的方向更改?

java - 多个 JSONObject 键和值不会保存到 Parse

java - EasyMock 与 withConstructor 忽略在构造函数中调用的 addMockedMethod

android - 无法创建线程中的 WebView