【问题标题】:Got NetworkInfo state:DISCONNECTED/BLOCKED even if phone is connected得到 NetworkInfo 状态:DISCONNECTED/BLOCKED 即使手机已连接
【发布时间】:2018-10-26 12:52:33
【问题描述】:

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

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

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;

    }
}

【问题讨论】:

    标签: android connect


    【解决方案1】:

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

    第 1 步

    1. 从设置中输入电池
    2. 点击未监控的应用程序
    3. 添加您的应用

    第二步

    1. 从设置进入应用程序
    2. 点按您的应用
    3. 点按移动数据
    4. 在数据保护程序开启时启用允许应用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-26
      • 1970-01-01
      相关资源
      最近更新 更多