如何检查Android是否有互联网连接

时间:2011-12-26 09:36:38

标签: java android connection

我正在开发一个Android应用程序。

我希望我的应用程序通知我Android是否有互联网连接。我该如何检查?

3 个答案:

答案 0 :(得分:4)

@Carlo:最简单的方法是首先将ACCESS_NETWORK_STATE权限添加到您的应用程序清单文件并编写一个这样的函数

public boolean isOnline() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnectedOrConnecting()) {
        return true;
    }
    return false;
}

如果返回值为true表示互联网正在工作或错误表示显示警告框:)

答案 1 :(得分:1)

您需要在应用程序中为android.net.conn.CONNECTIVITY_CHANGE意图创建一个广播接收器。

以下是文档http://developer.android.com/reference/android/net/ConnectivityManager.html#CONNECTIVITY_ACTION

希望,它对你有帮助!

答案 2 :(得分:1)

//这将检查wifi,3G / EDGE和所有网络可用性

public boolean networkStatus() {
        boolean status = false;
        int i = 0;
        try {
            String service = context.CONNECTIVITY_SERVICE;
            ConnectivityManager connectivity = (ConnectivityManager) BackupSettings.this.context.getSystemService(service);
            connectivity.setNetworkPreference(1);
            NetworkInfo networkInfo[] = connectivity.getAllNetworkInfo();
            int cnt = networkInfo.length;
            for (i = 0; i < cnt; i++) {
                if (networkInfo[i].isConnected() == true) {
                    status = true;
                }
            }
        } catch (Exception ee) {
            Log.e(getClass().getSimpleName(), " Error at networkStatus() :=" + ee.toString());
        }
        Log.e(getClass().getSimpleName(),"End  of  networkStatus() fun " + status);
        return status;
    }