安卓的NetworkInfo始终返回true,即使网络不可用(Android networkinfo

2019-09-22 11:36发布

此代码总是返回true。 这被当按下登录按钮调用。 我第一次尝试用连接(上仿真器)无线网络连接。 它返回true,然后我断开无线网络连接,然后尝试。 它仍然返回true。

public static boolean isNetworkAvailable( Context context) {

    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = cm.getActiveNetworkInfo();
            // if no network is available networkInfo will be null
            // otherwise check if we are connected
            if (networkInfo != null && networkInfo.isConnected()) {
                 State network = networkInfo.getState();
                 Log.d("here", "true");
                 return (network == NetworkInfo.State.CONNECTED || network == NetworkInfo.State.CONNECTING);

            }
            Log.d("here1", "false");
            return false;
}

Answer 1:

此代码的工作设备上,因为我用我的应用程序的一个非常类似的东西。 请记住,该代码会告诉你你是否连接到网络,您连接到网络而不是是否有互联网连接。 如果你使用模拟器,它总是通过3G连接模拟,因此断开电脑的WiFi不会改变这一点。 你可以把飞行模式的仿真器,它应该给你的“假”,你所期待的。

我已经在我的应用程序做的是创造出网络接收广播变化的业务。 一旦网络连接后,就会试图下载一个已知的(小)的文件在互联网上。 只有如果成功将它再播的Internet中使用意向的所有活动,这样就可以改变在此基础上的状态。



文章来源: Android networkinfo always returns true even if internet is not available