AndroidのWi-Fiを使ってpingする方法です。
まずはゲートウェイのアドレスを調べます。DhcpInfoのgatewayフィールドに入っています。
WiFiManager wifi = (WifiManager)getSystemService(WIFI_SERVICE);
DhcpInfo dhcpInfo = wifi.getDhcpInfp();
int gateway = dhcpInfo.gateway;
ここにはリトルエンディアンで入っています。これをビッグエンディアンの配列にします。
byte[] gatewayAddr = new byte[] {
(byte)(gateway&255),
(byte)((gateway>>8)&255),
(byte)((gateway>>16)&255),
(byte)((gateway>>24)&255)
};
あとは普通のJavaプログラムと同様にpingします。
InetAddress addr = InetAddress.getByAddress(gatewayAddr);
if ( addr.isReachable(3000) ) {
…
}