Search code examples
javaandroidnetwork-programmingtoast

How should I go ahead and check mobile data connectivity


I need a message to show up if there is no internet connection. Currently, if wifi is turn off then the toast method will work and won't move forward. However, if i turn on my mobile data even without a service plan, it will still open a blank activity.

here is the code i got from here

public static boolean isInternetAvailable(Context context)
{
    NetworkInfo info = (NetworkInfo) ((ConnectivityManager)
            context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();

    if (info == null)
    {
        Log.d(TAG,"no internet connection");
        return false;
    }
    else
    {
        if(info.isConnected())
        {
            Log.d(TAG," internet connection available...");
            return true;
        }
        else
        {
            Log.d(TAG," internet connection");
            return true;
        }

and this below is in my onClick method.

newsButton.setOnClickListener(new View.OnClickListener() {
        @Override


        public void onClick(View view) {


if(CheckNetwork.isInternetAvailable(MainActivity.this)) //returns true if internet available
            {

                moveToNews();
            }
            else
            {
                Toast.makeText(MainActivity.this,"Please Check Your Internet Connection and Try Again",Toast.LENGTH_LONG*4000).show();
            }

Solution

  • check my below code

    [1].Add below line internet permission into AndroidManifest.xml

    <uses-permission android:name="android.permission.INTERNET" />
    

    [2]. On your MainActivity or Parent activity from you want to display or going to next activity add below code

    [2.1] Globally declare below variable

    private boolean isInternetConnected;
    

    [2.2] add below line into onCreate()

    isInternetConnected = isNetworkConnected(getApplicationContext());
    

    [2.3] add below method

    public boolean isNetworkConnected(Context context)
        {
            if(context != null)
            {
                ConnectivityManager cm = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
                if (cm != null) {
                    NetworkInfo ni = cm.getActiveNetworkInfo();
                    if (ni == null) {
                        return false;
                    } else
                        return true;
                }
                else
                {
                    return true;
                }
            }
            else
            {
                return true;
            }
        }
    

    [3]. add below code into onCreate() below of this line isInternetConnected = isNetworkConnected(getApplicationContext());

    if(isInternetConnected){
      //Move to another Activity or display Toast
    }
    else{
      //Toast of not connected with Internet 
    }
    

    THAT'S IT ;)!!