应用程序启动时如何检查互联网连接是否可用

时间:2013-10-08 06:28:03

标签: android

我想知道在应用程序启动之前如何检查互联网连接是否可用。单击应用程序列表中的应用程序按钮时,我想显示对话框连接到Internet或请在启动此应用程序之前连接到Internet。

我试过了,但我做不到。

任何人都可以帮助我吗?

5 个答案:

答案 0 :(得分:2)

试试这个:

public boolean isNetworkAvailable(Context context)
    {
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null;
    }

你应该从第一个Activity的onCreate中调用它,或者如果你想真的全力以赴,你可以覆盖Application,并在那里调用它(你需要在你的活动中连接它)。

希望这有帮助。

答案 1 :(得分:1)

第1步: 在Manifest.xml中添加权限以访问NetworkState。

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

第2步:

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

尝试以下步骤,如果您有任何问题,请告诉我...... :)

答案 2 :(得分:0)

public boolean isNetworkAvailable(Context ct)
{
    ConnectivityManager connectivityManager = (ConnectivityManager) ct.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null;
}

只需在此处发送背景信息如果有互联网,它将返回真实其他错误

答案 3 :(得分:0)

试试这个:

public static boolean isOnline(Context ctx) {

    NetworkInfo info = (NetworkInfo) ((ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
    if (info == null && !info.isConnected() ) {
        return false;
    }
    if (info.isRoaming()) {
        return false;
    }
    return true;
}

答案 4 :(得分:0)

使用以下代码。

package com.example.app;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;


public class ConnectionManager {

    private Context context;

    public ConnectionManager(Context context){
        this.context = context;
    }
    public boolean isConnectingToInternet(){

        ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo[] info = cm.getAllNetworkInfo();
        if (info != null){
            for (int i = 0; i < info.length; i++){
                if (info[i].getState() == NetworkInfo.State.CONNECTED){
                    return true;
                }
            }
        }
        return false;
    }
}

然后在您的MainActivity中调用isConnectingToInternet,如下所示。

ConnectionManager cm = new ConnectionManager(this);

boolean connection = cm.isConnectingToInternet();