Proyectos de Subversion Android Microlearning

Rev

Rev 6 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

package com.cesams.twogetskills.receiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
//import android.net.NetworkInfo;
import android.net.NetworkInfo;
import android.os.Build;
import android.util.Log;

import com.cesams.twogetskills.skeleton.ITwoGetSkills;

public class ConnectivityReceiver extends BroadcastReceiver {
    private final static String TAG = "C2GS - ConnReceiver";

    @Override
    public void onReceive(Context context, Intent intent) {
        try {
            boolean isConnected = isOnline(context);

            if(isConnected) {
                Log.d(TAG, "Si esta conectado");
            } else {
                Log.d(TAG, "No esta conectado");
            }

            if(context instanceof ITwoGetSkills) {
                //((ITwoGetSkills) context).showMessageNotConnection(isConnected);
                ((ITwoGetSkills) context).setConnectedInternet(isConnected);
            }
        } catch (NullPointerException e) {
            e.printStackTrace();
        }
   }

    public boolean isOnline(Context context)
    {
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            Network nw = connectivityManager.getActiveNetwork();
            if (nw == null) return false;
            NetworkCapabilities actNw = connectivityManager.getNetworkCapabilities(nw);
            return actNw != null && (actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) || actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) || actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) || actNw.hasTransport(NetworkCapabilities.TRANSPORT_BLUETOOTH));
        } else {
            NetworkInfo nwInfo = connectivityManager.getActiveNetworkInfo();
            return nwInfo != null && nwInfo.isConnected();
        }
    }
}