【问题标题】:Internet check connection not working android.net.isConected()互联网检查连接不起作用 android.net.isConected()
【发布时间】:2013-06-07 13:56:13
【问题描述】:

这个问题与how-do-you-check-the-internet-connection-in-android有关。

@William 解决方案帮助了我很多,但在有限的连接上它不起作用。

我已连接到无线调制解调器,但此调制解调器未连接到互联网。

根据android docs,这个函数应该做所有的工作,但我认为函数检查的数据只在android->调制解调器之间,而不是android->webservice(互联网)之间。

@William 代码是:

final ConnectivityManager conMgr =  (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo activeNetwork = conMgr.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected()) {
     //notify user you are online
} else {
     //notify user you are not online
} 

如何检查互联网连接?我错过了什么?

【问题讨论】:

  • 我认为作为替代方案,您可以向远程 URL 发出实际的 HTTP 请求,看看它是否成功。
  • @Nachi 这是我的第一个客人,但我认为获得 HTTP 响应需要很长时间,但响应是即时的!发表您的评论作为我可以接受的正确答案。谢谢

标签: android android-activity network-state


【解决方案1】:

我认为作为替代方案,您可以向远程 URL 发出实际的 HTTP 请求,看看它是否成功。

【讨论】:

    【解决方案2】:

    试试这个

      public static boolean isInternetConnection(Context mContext) {
        final ConnectivityManager connMgr = (ConnectivityManager) mContext
                .getSystemService(Context.CONNECTIVITY_SERVICE);
    
        final android.net.NetworkInfo wifi = connMgr
                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    
        final android.net.NetworkInfo mobile = connMgr
                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    
        if (wifi.isAvailable()
                && wifi.getState() == NetworkInfo.State.CONNECTED) {
            return true;
        } else if (mobile.isAvailable()
                && mobile.getState() == NetworkInfo.State.CONNECTED) {
            return true;
        } else {
            return false;
        }
    }
    
    public static boolean isWifi(Context mContext) {
        final ConnectivityManager connMgr = (ConnectivityManager) mContext
                .getSystemService(Context.CONNECTIVITY_SERVICE);
    
        final android.net.NetworkInfo wifi = connMgr
                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    
        if (wifi.isAvailable()) {
            return true;
        } else {
            return false;
        }
    }
    
    public static boolean isOtherNetwork(Context mContext) {
        final ConnectivityManager connMgr = (ConnectivityManager) mContext
                .getSystemService(Context.CONNECTIVITY_SERVICE);
    
        final android.net.NetworkInfo mobile = connMgr
                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    
        if (mobile.isAvailable()) {
            return true;
        } else {
            return false;
        }
    }
    

    在您的清单中添加权限

            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 2017-03-16
      • 2014-02-08
      • 2012-06-12
      相关资源
      最近更新 更多