Я не специалист по Android, но есть кое-что, что вы можете попробовать через UDP, если такие соединения доступны на платформе Android.
Предполагая, что у ваших устройств есть частные IPv4-адреса, вам потребуется центральный сервер (с публичным IPV4-адресом), который мог бы сообщить им, как их частный адрес транслируется их NAT.
Этот переведенный адрес должен был бы быть передан другим устройствам, которые могли бы начать связь с инициирующим устройством через UDP. Если связь невелика, убедитесь, что вы включили любую опцию «keepalive» в соединениях UDP.
Если все устройства имеют публичные IP-адреса (в чем я сомневаюсь), вам просто нужно согласовать порт и открыть UDP-соединения. Пэрам просто нужно обменяться публичным адресом.
Если все устройства имеют адреса IPv6, вы можете использовать их как есть (если вы согласились с портом). Сверстникам просто нужно сначала обменять их.