1

I have understood internet connection by used below code. When app is foreground, NetworkInfo connection state is CONNECTED but app is background or killed, connection state is DISCONNECTED/BLOCKED even if phone is connected 3G.

I looked another questions by stackoverflow but there is no answer to this problem.

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;

    }
}
Gugu72
  • 2,052
  • 13
  • 35
begiNNer
  • 128
  • 12

1 Answers1

1

You device is Samsung? Samsung has a power save mode and you have to allow below ways your app:

Step 1

  1. Enter Battery from Settings
  2. Clicked Unmonitored apps
  3. Add your app

Step2

  1. Enter Apps from Settings
  2. Tap your app
  3. Tap Mobile data
  4. Enable Allow app while Data saver on
dralexnumber
  • 238
  • 2
  • 10