Cómo comprobar que WiFi está conectado, pero no hay acceso a Internet en Android

Me gustaría saber por qué wifi está conectado pero no hay acceso a internet en Android. ¿Cómo puedo comprobarlo? Mi código es:

ConnectivityManager cn=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
 NetworkInfo nf=cn.getActiveNetworkInfo();

 if(nf != null && nf.isConnected() )
         {
            Flag2=false;
            Log.e("network--------", "1--------------");

            if (cn.getActiveNetworkInfo().isConnectedOrConnecting())
            {Log.e("network--------", "11111111111111--------------");
             }
            else
            {Log.e("network--------", "2222222222222--------------");
            }
        }

 else 
         {
            Log.e("network--------", "2--------------");
 }

Respuestas a la pregunta(4)

Su respuesta a la pregunta