Instalación y uso

Para un correcto funcionamiento

En este punto, debes tener a la mano tu NetsocksID, lo necesitarás para inicializar el SDK.

Inicializar SDK

Recuerda que tu NetsocksID se encuentra en el portal de netsocks. Para visualizarla consulta la sección Publisher Key.

Nuestra recomendación es inicializar el SDK en la clase Application de la app para garantizar los mejores resultados de funcionamiento, aunque también se puede realizar en algún Activity principal. Utiliza el siguiente código en el método onCreate :

VpnSdk.initialize(this, "NetsocksID");

La inicialización del SDK puede demorar un poco más que el flujo natural de tu aplicación, debes tenerlo en cuenta antes de utilizar cualquier método del SDK, de lo contrario se generará un error.

Escuchar la inicialización del SDK

Puedes escuchar cuando el SDK se inicialice desde cualquier parte de tu aplicación utilizando el método VpnSdk.wait(...), o hacerlo al mismo tiempo que llamas al método .initialize(...)

  • Si utilizaste .initialize() en la clase Application, SplashActivity u otra actividad principal en la que no hayas esperado la inicialización del SDK y deseas saber de manera posterior el momento en el que el SDK fue inicializado, puedes utilzar VpnSdk.wait():

VpnSdk.wait((result) -> {
    // if(result) myConnectButton.enabled = true (Activar botón de conexión)
    return Unit.INSTANCE;
});

Obtener lista de servidores

Una vez que el SDK se inicializó con éxito, puedes traer la lista de servidores disponibles haciendo uso del método getServersList()

VpnSdk.INSTANCE.getServerList(new ResultCallback<List<Server>>() {
    @Override
    public void onResult(List<Server> servers) {
        // for each server you can
        Server server = servers.get(0);
        int latency = server.getServerLatency();
        String country = server.getCountry();
        Float serverLoadPercentage = server.getLoad();
        int availableSeats = server.getSlots();
    }

    @Override
    public void onError(@NonNull Throwable throwable) {

    }
});

Algunos campos a excepción de "country" pueden no estar disponibles para todos los servidores o para ninguno en absoluto. Toma las precauciones necesarias.

Conectar a un servidor

Antes de poder iniciar la conexión a un servidor, tienes que declarar el vpnManager, puedes hacerlo en tu fragmento o activity de la siguiente manera:

import io.netsocks.vpn.VpnManager
// class VpnFragment : Fragment(R.layout.fragment_vpn) {
// ...
    private final VpnManager vpnManager = new VpnManager(this);
// ...

Cuando hayas declarado el vpnManager y hayas obtenido la lista de países, puedes iniciar la conexión de la siguiente manera:

NotificationSettings notificationSettings = new NotificationSettings(
        "title", // titulo de la notificación
        "content", // contenido de la notificación
        "disconnectButtonText" // texto del botón desconectar
);

ConnectionSettings config = new ConnectionSettings(
        notificationSettings, 
        "MX" // código de país
);
vpnManager.connect(config); // iniciar conexión

Recuerda conectar el usuario solo a servidores disponibles previamente obtenidos de la lista de países.

Para desconectar al usuario del servidor, tienes que llamar el método disconnect.

vpnManager.disconnect(); // cerrar conexión

Recuerda revisar la sección de consentimiento para obtener más información respecto a qué puedes hacer si el usuario opta por no utilizar el SDK de netsocks.

Modificar el comportamiento del Túnel

Puedes modificar el comportamiento del tunel haciendo uso del método setTunnelingMode, este método le dirá a la VPN como enrutar el tráfico del dispositivo. Los modos de operación disponibles son:

Los modos de operación disponibles para configurar a través del método setTunnelingMode son:

  • KILL_SWITCH: En este modo, todo el tráfico de Internet del dispositivo se enruta a través del túnel VPN, proporcionando una capa completa de seguridad y privacidad. Es el modo recomendado para usuarios que desean cifrar todo su tráfico de Internet.

  • ONLY_ADDED_APPS: En este modo, solo se enrutará el tráfico de internet de las aplicaciones que hayas añadido utilizando el método VpnSdk.addApp.

  • ONLY_NOT_ADDED_APPS: Este modo enrutará el tráfico de todas aquellas aplicaciones que no hayas añadido utilizando el método VpnSdk.addApp.

Para establecer el modo de operación del túnel, utiliza el siguiente código:

VpnSdk.INSTANCE.setTunnelingMode(TunnelMode.MODE); // Reemplaza MODE Según corresponda.

Para controlar selectivamente el tráfico de qué aplicaciones se enruta a través de la VPN, puedes usar los métodos VpnSdk.addApp y VpnSdk.removeApp. Esto permite una experiencia VPN más personalizada, enfocándose en aplicaciones específicas en lugar de aplicar una cobertura VPN general a toda la actividad del dispositivo. Agregar y Eliminar Aplicaciones del Túnel VPN

Agregar y Eliminar Aplicaciones del Túnel VPN con VpnSdk

Para personalizar aún más tu experiencia VPN y definir qué aplicaciones específicas deseas que se enrutadas a través del túnel VPN, puedes utilizar los métodos addApp y removeApp del SDK de VPN. Es importante recordar que el efecto de agregar o quitar aplicaciones depende del modo de túnel que hayas configurado previamente (KILL_SWITCH, ONLY_ADDED_APPS, o ONLY_NOT_ADDED_APPS).

Agregar una Aplicación al Túnel VPN

Para incluir una aplicación específica en el túnel VPN, de manera que su tráfico de Internet se encripte y redireccione a través de la VPN, utiliza el método addApp como se muestra a continuación:

VpnSdk.INSTANCE.addApp("nombre.del.paquete.de.la.aplicación");

Reemplaza "nombre.del.paquete.de.la.aplicación" con el identificador único del paquete de la aplicación que deseas agregar.

Eliminar una Aplicación del Túnel VPN

Si deseas excluir una aplicación del túnel VPN, para que su tráfico de Internet no se enrute a través de la VPN, puedes utilizar el método removeApp de la siguiente manera:

VpnSdk.INSTANCE.removeApp("nombre.del.paquete.de.la.aplicación");

Nuevamente, reemplaza "nombre.del.paquete.de.la.aplicación" con el identificador único del paquete de la aplicación que deseas eliminar.

Recuerda que el efecto de agregar o eliminar aplicaciones del túnel VPN dependerá del modo de operación que hayas establecido utilizando el método setTunnelingMode. Por ejemplo, si eliges ONLY_ADDED_APPS, solo las aplicaciones agregadas explícitamente se beneficiarán del enrutamiento a través del túnel VPN.

Last updated