Код пытается установить соединение с использованием как IPv4, так и IPv6.
На некоторых устройствах подключение к IPv6 завершается неудачно, в то время как другие устройства на том же Wifi-маршрутизаторе не имеют проблем.
AsyncTask.execute(new Runnable() {
@Override
public void run() {
try {
InetAddress [] adrall = InetAddress.getAllByName("www.google.com");
for(InetAddress adr : adrall)
{
try {
Log.d("TEST", "Connecting to " + adr.getHostAddress());
new Socket().connect(new InetSocketAddress(adr, 80), 2000);
Log.d("TEST", "Success!");
} catch (Exception e) {
Log.d("TEST", "Fail!");
}
}
} catch (Exception e) {
}
}
});
Например, вывод с использованием Samsung Galaxy S9:
Connecting to 2a00:1450:4001:808::2004
Fail!
Connecting to 172.217.16.132
Success!
Есть идеи?