You can try this:
public class NetworkUtil { public static int TYPE_WIFI = 1; public static int TYPE_MOBILE = 2; public static int TYPE_NOT_CONNECTED = 0; public static int getConnectivityStatus(Context context) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); if (null != activeNetwork) { if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) return TYPE_WIFI; if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) return TYPE_MOBILE; } return TYPE_NOT_CONNECTED; } public static String getConnectivityStatusString(Context context) { int conn = NetworkUtil.getConnectivityStatus(context); String status = null; if (conn == NetworkUtil.TYPE_WIFI) { status = "Wifi enabled"; } else if (conn == NetworkUtil.TYPE_MOBILE) { status = "Mobile data enabled"; } else if (conn == NetworkUtil.TYPE_NOT_CONNECTED) { status = "Not connected to Internet"; } return status; } }
define the BroadcastReceiver:
public class NetworkChangeReceiver extends BroadcastReceiver { public boolean isConnected = true; String status; Context Cnt; Activity activity; Activity parent; AlertDialog alert; public NetworkChangeReceiver(Activity a) { // TODO Auto-generated constructor stub parent = a; } @Override public void onReceive(final Context context, final Intent intent) { activity = (Activity) context; status = NetworkUtil.getConnectivityStatusString(context); if (status.equals("Not connected to Internet")) { //Toast.makeText(context, "Internet connection required", Toast.LENGTH_LONG).show(); } ReturnStatus(status, context); } public void ReturnStatus(String s, final Context cnt) { if (s.equals("Mobile data enabled")) { isConnected = true; //Intent intent = new Intent(activity,activity.getClass()); //activity.startActivity(intent); } else if (s.equals("Wifi enabled")) { isConnected = true; } else { isConnected = false; final AlertDialog.Builder builder = new AlertDialog.Builder(cnt); // Set the Alert Dialog Message builder.setMessage("Internet connection required") .setCancelable(false) .setPositiveButton("continue", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { activity.finish(); Intent intent = new Intent(activity, activity.getClass()); activity.startActivity(intent); } }) .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { if(alert.isShowing()) { isConnected=false; alert.dismiss(); } } }); alert = builder.create(); alert.show(); } } public boolean is_connected() { return isConnected; } }
Now use them in any activity :
public NetworkChangeReceiver receiver; Boolean bl = true; public void checkInternet() { IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); receiver = new NetworkChangeReceiver(this); registerReceiver(receiver, filter); bl = receiver.is_connected(); Log.d("Boolean ", bl.toString()); }
Unregister the receiver in onPause()
@Override protected void onPause() { super.onPause(); try { unregisterReceiver(receiver); } catch (Exception e) { } }