【问题标题】:Network status is always true for android. How?对于 android,网络状态始终为 true。如何?
【发布时间】:2013-01-29 06:48:22
【问题描述】:

我正在尝试在我的 android 应用程序中检查网络状态。

我有这样的代码:

public boolean isNetworkAvailable()
{
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();

    if(networkInfo != null && networkInfo.isConnected())
        return true;

    return false;
}

当网络按预期可用时,此代码将返回 true,但即使在网络不可用的情况下,它也会返回 true

只需将其返回的true 用于这两种情况!

我在哪里犯了代码错误?

请注意,我在模拟器中运行该应用程序。

提前致谢。

【问题讨论】:

  • 我建议你在设备中也试试这个代码,因为在模拟器中有些这样的东西不是很可靠,因为它们主要是模拟一次。

标签: android networking android-emulator


【解决方案1】:

试试下面的方法,它对我来说很棒。希望对你也有帮助。

 public static boolean IsNetConnected()
{
    boolean NetConnected = false;
    try
    {
        ConnectivityManager connectivity =
        (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity == null)
        {
            NetConnected = false;
        }
        else
        {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null)
            {
                for (int i = 0; i < info.length; i++)
                {
                    if (info[i].getState() == NetworkInfo.State.CONNECTED)
                    {
                        NetConnected = true;
                    }
                }
            }
        }
    }
    catch (Exception e)
    {
        NetConnected = false;
    }
    return NetConnected;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 2018-04-25
    相关资源
    最近更新 更多