Android не удается подключиться к IPv6-адресу на некоторых устройствах - PullRequest
0 голосов
/ 25 января 2020

Код пытается установить соединение с использованием как 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!

Есть идеи?

...