您的位置:首页 > 理论基础 > 计算机网络

判断网络是否有效的一些方法

2016-09-26 09:32 260 查看
获取网络信息需要在AndroidManifest.xml文件中加入相应的权限。

1)判断是否有网络连接

[java] view plain copy print?

public boolean isNetworkConnected(Context context) {  

    if (context != null) {  

        ConnectivityManager mConnectivityManager = (ConnectivityManager) context  

                .getSystemService(Context.CONNECTIVITY_SERVICE);  

        NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();  

        if (mNetworkInfo != null) {  

            return mNetworkInfo.isAvailable();  

        }  

    }  

    return false;  

}  

 

2)判断WIFI网络是否可用

[java] view plain copy print?

public boolean isWifiConnected(Context context) {  

    if (context != null) {  

        ConnectivityManager mConnectivityManager = (ConnectivityManager) context  

                .getSystemService(Context.CONNECTIVITY_SERVICE);  

        NetworkInfo mWiFiNetworkInfo = mConnectivityManager  

                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);  

        if (mWiFiNetworkInfo != null) {  

            return mWiFiNetworkInfo.isAvailable();  

        }  

    }  

    return false;  

}  

3)判断MOBILE网络是否可用

[java] view plain copy print?

public boolean isMobileConnected(Context context) {  

    if (context != null) {  

        ConnectivityManager mConnectivityManager = (ConnectivityManager) context  

                .getSystemService(Context.CONNECTIVITY_SERVICE);  

        NetworkInfo mMobileNetworkInfo = mConnectivityManager  

                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);  

        if (mMobileNetworkInfo != null) {  

            return mMobileNetworkInfo.isAvailable();  

        }  

    }  

    return false;  

}  

 4)获取当前网络连接的类型信息

[java] view plain copy print?

public static int getConnectedType(Context context) {  

    if (context != null) {  

        ConnectivityManager mConnectivityManager = (ConnectivityManager) context  

                .getSystemService(Context.CONNECTIVITY_SERVICE);  

        NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();  

        if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {  

            return mNetworkInfo.getType();  

        }  

    }  

    return -1;  
}  

5)用ping判断是否连接外网

//调用时一定要添加权限

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

public static boolean ping() {  

    String result = null;  

    try {  

        String ip = "www.baidu.com";// 除非百度挂了,否则用这个应该没问题~  

        Process p = Runtime.getRuntime().exec("ping -c 3 -w 100 " + ip);// ping1次  

        // 读取ping的内容,可不加。  

        InputStream input = p.getInputStream();  

        BufferedReader in = new BufferedReader(new InputStreamReader(input));  

        StringBuffer stringBuffer = new StringBuffer();  

        String content = "";  

        while ((content = in.readLine()) != null) {  

            stringBuffer.append(content);  

        }  

        Log.i("TTT", "result content : " + stringBuffer.toString());  

        // PING的状态  

        int status = p.waitFor();  

        if (status == 0) {  

            result = "successful~";  

            return true;  

        } else {  

            result = "failed~ cannot reach the IP address";  

        }  

    } catch (IOException e) {  

        result = "failed~ IOException";  

    } catch (InterruptedException e) {  

        result = "failed~ InterruptedException";  

    } finally {  

        Log.i("TTT", "result = " + result);  

    }  

    return false;  
}  

判断有没有网

public static boolean isNetworkAvailable(Context context) {

ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {

for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}

}
}
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: