Android 立即检查互联网连接

Android 立即检查互联网连接,android,Android,是否有任何广播接收器(或服务)在应用程序保持运行期间持续检查互联网连接。因此,每当存在松散连接时,我都会得到一些松散连接的信息。 我知道ConnectivityManager private boolean isNetworkAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

是否有任何广播接收器(或服务)在应用程序保持运行期间持续检查互联网连接。因此,每当存在松散连接时,我都会得到一些松散连接的信息。 我知道
ConnectivityManager

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

我们可以通过哪个班级来检查是否有网络连接?但我需要立即检查…

此试用代码正在运行

public static boolean checkConnection(Context mContext) {

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

这个尝试代码正在工作

public static boolean checkConnection(Context mContext) {

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

您可以添加具有特定操作的广播:

IntentFilter过滤器=新的IntentFilter(ConnectivityManager.CONNECTIVITY\u操作);

寄存器接收器(连接接收器、过滤器)

您可以添加具有特定操作的广播:

IntentFilter过滤器=新的IntentFilter(ConnectivityManager.CONNECTIVITY\u操作);

寄存器接收器(连接接收器、过滤器)

使用访问\网络\状态权限,只需创建一个连接方法即可

public boolean isOnline() {
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

    return cm.getActiveNetworkInfo().isConnectedOrConnecting();
}

使用ACCESS\u NETWORK\u STATE权限,只需创建一个已连接的方法即可

public boolean isOnline() {
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

    return cm.getActiveNetworkInfo().isConnectedOrConnecting();
}

在开发显示网络状态的应用程序之前,请尝试使用ConnectivityManager和其他广播

如果情况是这样(通常是这样),您需要执行一些基于网络的操作,例如从任何服务器获取一些数据

我不去检查网络状态 但依赖于UnknownHostException或RuntimeException等,当您发出一个告诉我“hey network不可用”的请求时,这些请求会被抛出

我觉得这比在发出api请求之前进行网络检查更好

  • 无需connectivity manager的附加代码

  • 另外,如果case developer保存了不可用的连接值,不更新它,并在一段时间后使用它,该怎么办。所以它很容易出错

  • 这就像是在需要的准确时间进行检查,不会影响其他操作

  • 主要的一种情况是,对于非常积极的情况,设备从不丢失数据 连通性为什么要运行一段无用的代码

  • 这只是我的偏好,我并不质疑ConnectionManager:)的存在


    希望它能在这一场景或其他场景中有所帮助。

    在您开发一个显示网络状态的应用程序之前,请尝试使用ConnectionManager和其他广播

    如果情况是这样(通常是这样),您需要执行一些基于网络的操作,例如从任何服务器获取一些数据

    我不去检查网络状态 但依赖于UnknownHostException或RuntimeException等,当您发出一个告诉我“hey network不可用”的请求时,这些请求会被抛出

    我觉得这比在发出api请求之前进行网络检查更好

  • 无需connectivity manager的附加代码

  • 另外,如果case developer保存了不可用的连接值,不更新它,并在一段时间后使用它,该怎么办。所以它很容易出错

  • 这就像是在需要的准确时间进行检查,不会影响其他操作

  • 主要的一种情况是,对于非常积极的情况,设备从不丢失数据 连通性为什么要运行一段无用的代码

  • 这只是我的偏好,我并不质疑ConnectionManager:)的存在



    希望它能在这一场景或其他场景中有所帮助。

    打开www.google.com,您可以获得即时互联网连接…)ConnectivityManager可能是您最好的选择,我以前尝试过寻找它,但找不到任何东西。看看这个问题,它有一些答案,在检查连接方面有一些小的改进@user1129443-嘿,放松朋友们只是想让你从压力中解脱出来。。希望您能尽快找到解决方案…可能与open www.google.com重复,您可以获得即时互联网连接…:)ConnectivityManager可能是您最好的选择,我以前尝试过寻找它,但找不到任何东西。看看这个问题,它有一些答案,在检查连接方面有一些小的改进@user1129443-嘿,放松朋友们只是想让你从压力中解脱出来。。希望您能尽快找到解决方案…可能与@PareshMayani完全相同+1@user1129443检查教程中的
    update
    部分。@user1129443然后在后台服务中编写此代码。@PareshMayani我有这个想法,但我需要浏览广播服务。我已将此代码放入服务中,并且工作正常…@user1129443很高兴您找到了解决方案!!Cheers@PareshMayani正是+1@user1129443检查教程中的
    update
    部分。@user1129443然后在后台服务中编写此代码。@PareshMayani我有这个想法,但我需要浏览广播服务。我已将此代码放入服务中,并且工作正常…@user1129443很高兴您找到了解决方案!!如果您想要或者您想在活动中定义广播,Cheerresyo可以在清单中定义接收者。类似于:
    private BroadcastReceiver connectionReceiver=new BroadcastReceiver(){@Override public void onReceive(上下文上下文,意向意向){String reason=Intent.getStringExtra(ConnectivityManager.EXTRA_reason);//DO Something}此广播在连接更改时发出通知!!它不会每N秒收到一个意图。也许你可以在应用程序开始时保存连接(开/关),然后用接收器更新ir。您将只读取保存的状态。如果需要,您可以在清单中定义接收者,或者您可能希望在活动中定义所需的广播。类似于:
    private BroadcastReceiver connectionReceiver=new BroadcastReceiver(){@Override public void onReceive(上下文上下文,意图-意图){String reason=Intent.g