Android判断网络连接能否可用

移动开发 码拜 9年前 (2016-05-02) 1094次浏览
本人是要判断网络连接能否可用,例如:手机连上了一个WiFi,但是这个WiFi无法访问网络,这种情况怎么样判断?
解决方案

10

参考下贴:
http://stackoverflow.com/questions/16580380/how-to-check-wifi-is-connected-but-no-internet-access-in-android

public void checkOnlineState() {
    ConnectivityManager CManager =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo NInfo = CManager.getActiveNetworkInfo();
    if (NInfo != null && NInfo.isConnectedOrConnecting()) {
        if (InetAddress.getByName("www.xy.com").isReachable(timeout))
        {  
         // host reachable  
        }
         else
         {    
         // host not reachable  
         }  
    }
    return;
}

加上权限

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

5

连接上Wi-Fi以后,连接一个公共的网站试试

10

引用:
Quote: 引用:

参考下贴:
http://stackoverflow.com/questions/16580380/how-to-check-wifi-is-connected-but-no-internet-access-in-android

public void checkOnlineState() {
    ConnectivityManager CManager =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo NInfo = CManager.getActiveNetworkInfo();
    if (NInfo != null && NInfo.isConnectedOrConnecting()) {
        if (InetAddress.getByName("www.xy.com").isReachable(timeout))
        {  
         // host reachable  
        }
         else
         {    
         // host not reachable  
         }  
    }
    return;
}

加上权限

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

试过了,没用  一直返回false

www.xy.com这个网址需要替换为可以访问的网址

55

重贴一个可以用的实例吧:

 public void checkOnlineState() {
        ConnectivityManager CManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo NInfo = CManager.getActiveNetworkInfo();
        try{
            if (NInfo != null && NInfo.isConnectedOrConnecting()) {
                if (InetAddress.getByName("www.163.com").isReachable(1000))
                {
                    Log.d("demo","reach");
                    // host reachable
                }
                else
                {
                    // host not reachable
                    Log.d("demo","not reach");
                }
            }else{
                Log.d("demo","not connect");
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return;
    }

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Android判断网络连接能否可用
喜欢 (0)
[1034331897@qq.com]
分享 (0)