Android App ping di un dipositivo di rete
Da un’app Android abbiamo vari modi per capire se abbiamo connessione con un dispositivo di rete.
In questo articolo vedremo come ottenere questa informazione effettuando un ping.
Utilizzeremo il metodo statico systemCommand della classe RunSystemCommands.
int res= RunSystemCommands.systemCommand("/system/bin/ping -c 1 "+ipServer2Mos)
A questo metodo passeremo il comando da eseguire: "/system/bin/ping -c 1 "+ipServer2Mos
Nel nostro caso si tratta di un comando ping che manda un solo pacchetto all’indirizzo contenuto nella stringa ipServer2Mos
che contiene l’indirizzo IP da pingare.
Il risultato viene messo nella variabile res.
Di seguito possiamo controllare che res sia pari a 0. if (res==0){ //ping andato a buon fine};
Se lo è, il ping è andato a buon fine.
Nell’esempio illustrato il ping viene effettuato alla pressione del bottone statusB2.
Se il ping va a buon fine il background del bottone viene colorato in verde statusB2.setBackgroundColor(Color.GREEN);
altrimenti viene colorato in rossoin rosso.
Di seguito l’esempio completo.
statusB2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { res= RunSystemCommands.systemCommand("/system/bin/ping -c 1 "+ipServer2Mos); if (res==0){ //ping andato a buon fine statusB2.setBackgroundColor(Color.GREEN); }else{ //ping non andato a buon fine statusB2.setBackgroundColor(Color.RED); } } } );