Skip to content

Delphi Android check internet connection

Son muy pocas las aplicaciones para Android que no necesitan una conexión a la red.

Y lo que he visto, que tampoco son pocos los programadores que se olvidan de realizar un chequeo de internet más allá de los permisos necesarios.

En Delphi no existe un comando, procedimiento o función que realice dicho chequeo, así que nos tenemos que ingeniar para realizarlo.

En la red hay miles de algoritmos que realizar el check internet connection, pero yo utilizo uno que siempre me ha dado resultado.

Como chequear la conexión de internet en Android desde Delphi

Para realizar este chequeo no podemos ver simplemente si hay conexión, tenemos que tratar de salir por la red para verificarlo, y para ello nada mejor que una web que sabemos que siempre, pero siempre esta activa, hablamos de Google.

Entonces, lo que realizaremos con esta función, es verificar si podemos acceder a google.com a través del componente TIdTCPClient.

Las unidades que tenemos que anexar a nuestro Uses son IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient.

Uses
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient;


function TForm1.CheckInternetConnection(): boolean;
var
  vIdTCPClient: TIdTCPClient;
begin
  result := False;
  vIdTCPClient := TIdTCPClient.Create(nil);
  try
    try
      With vIdTCPClient do
      begin
        ReadTimeout := 1000;
        ConnectTimeout := 1000;
        Port := 80;
        Host := 'google.com';
        Connect;
        Disconnect;
      end;
      result := True;
    except
      result := False;
    end;
  finally
    FreeAndNil(vIdTCPClient);
  end;
end;

En la función CheckInternetConnection(), lo que realizamos, es crear el componente TIdTCPClient, y le damos un tiempo de ReadTimeout := 1000 (1 segundo), asignamos el puerto 80 (demás esta explicar porque este puerto) y tratamos de conectarnos a google.com.

Si el componente se conecta devolverá True, si genera algún error, será capturada y devolverá False.