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.