android - 获得 NetworkInfo 状态 :DISCONNECTED/BLOCKED even if phone is connected

标签 android connect

我已通过使用以下代码了解互联网连接。当应用程序在前台时,NetworkInfo 连接状态为 CONNECTED 但应用程序在后台或被杀死时,连接状态为 DISCONNECTED/BLOCKED 即使手机已连接 3G .

我看了another questions通过 stackoverflow 但没有解决这个问题。

public class InternetConnectionControl {

    private NetworkInfo networkInfo;

    private NetworkInfo getNetworkInfo() {

        if (networkInfo == null) {
            ConnectivityManager _cm = ServiceUtil.getConnectivityManager(MyApplication.getContext());
            networkInfo = _cm.getActiveNetworkInfo();
        }

        return networkInfo;
    }

    public void setNetworkInfo(NetworkInfo networkInfo) {
        this.networkInfo = networkInfo;
    }

    private boolean isConnectedToWifi() {
        NetworkInfo info = getNetworkInfo();
        return (info != null && info.isConnectedOrConnecting() && info.getType() == ConnectivityManager.TYPE_WIFI);
    }

    private boolean isConnectedToMobile() {
        NetworkInfo info = getNetworkInfo();
        return (info != null && info.isConnectedOrConnecting() && info.getType() == ConnectivityManager.TYPE_MOBILE);
    }

    public boolean isConnectedToInternet() {

        boolean isWifiConnected = isConnectedToWifi();
        boolean isMobileConnected = isConnectedToMobile();

        return isWifiConnected || isMobileConnected;

    }
}

最佳答案

您的设备是三星?三星有省电模式,您必须允许您的应用通过以下方式:

第一步

  1. 从设置中输入电池
  2. 点击了不受监控的应用
  3. 添加您的应用

第二步

  1. 从设置中输入应用
  2. 点按您的应用
  3. 点按移动数据
  4. 启用流量节省程序时允许应用

关于android - 获得 NetworkInfo 状态 :DISCONNECTED/BLOCKED even if phone is connected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53009200/

相关文章:

android - Enemy Animator unity3d(2d) 返回未初始化的动画师

TableLayout 中的 Android 自动换行

android - future 通知的时间戳不正确

matlab - 连接图像中的点

android - createRfcommSocketToServiceRecord 配对蓝牙

java - 编译渲染脚本源代码

java - 在 Android 应用程序上从 Google Plus 帐户检索电子邮件

c++ - Qt: connect() 需要至少 4 个参数,但提供了 2 个

node.js - 为什么我的 session cookie 会过期?

reactjs - 如何正确输入 Redux 连接调用?