Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo comprobar el estado de la conexión VPN en Android ICS

Estoy tratando de registrar el receptor, que va a comprobar el estado de VPN. He intentado esto: Obtener el estado de conexión VPN en Android, pero parece que ya no funciona en ICS. He comprobado el código fuente de android para alguna pista, pero sin suerte, sólo notó que en ISC no hay nada como: vpn.connectivity y connection_state – que se utiliza para estar en android 2.3. También intenté usar android.net.conn.CONNECTIVITY_CHANGE como mi IntentFilter , pero no reacciona en conexión VPN en absoluto (por supuesto, he añadido permiso android.permission.ACCESS_NETWORK_STATE ). Pensé que es cosa simple de hacer, pero ya me quedo sin ideas de cómo hacerlo … ¿Podría alguien ayudarme con esto por favor?

  • Cómo dividir archivo mp3 con java
  • ¿Qué sucede si un manejador envía un mensaje a un subproceso después de Looper.prepare () pero antes de que Looper.loop () haya sido llamado?
  • ¿Cómo puedo hacer que los elementos de ActionBar sean uno a la izquierda, uno en el centro y otro a la derecha?
  • Filtro de intenciones para iniciar mi actividad cuando se hace clic en el URI personalizado
  • Flurry integraciones con Android App da un error "No se pudo encontrar la clase 'com.flurry.sdk.i', con referencia a método com.flurry.sdk.hu.a"
  • Generar 10 números y mover el primer número hasta el final 10 veces
  • Keystore y alias - ¿hay un uso a varios alias?
  • ¿Por qué Google no utiliza Golang o python como el idioma para Android?
  • Negación de permisos: no se permite enviar emisiones en android
  • Firebase 2.0 - cómo hacer frente a múltiples sabores (entornos) de una aplicación para Android?
  • Android Aidl Compile Error: no se pudo encontrar la importación para la clase
  • ¿Cómo puedo obtener un evento en Android Spinner cuando el elemento seleccionado actualmente se selecciona de nuevo?
  • 4 Solutions collect form web for “Cómo comprobar el estado de la conexión VPN en Android ICS”

    Puede ser que puede intentar sondear los cambios en el servidor DNS. Si ha cambiado, entonces VPN se ha conectado. Sin embargo, creo que podría haber mucha excepción a esta regla.

    ¿Cómo se obtienen los servidores DNS actuales para Android?

    Mi solución es encuestar una lista de NIC.
    # Puede obtener la lista ejecutando el comando "ls / sys / class / net".

    Si la lista tiene "tun0", el dispositivo ya se ha conectado a VPN.

    NetworkCapabilities funcionó para mí en API 21+. Lamentablemente no he encontrado una solución para 19-20. Usted tiene que hacer un bucle sobre todas las redes existentes y comprobar que tiene VPN_TRANSPORT

     ConnectivityManager cm = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE); Network[] networks = cm.getAllNetworks(); Log.i(TAG, "Network count: " + networks.length); for(int i = 0; i < networks.length; i++) { NetworkCapabilities caps = cm.getNetworkCapabilities(networks[i]); Log.i(TAG, "Network " + i + ": " + networks[i].toString()); Log.i(TAG, "VPN transport is: " + caps.hasTransport(NetworkCapabilities.TRANSPORT_VPN)); Log.i(TAG, "NOT_VPN capability is: " + caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)); } 
     for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { NetworkInterface intf = en.nextElement(); if (intf.getName().contains("tun0") || intf.getName().contains("ppp0")) { vpnInterface = intf; break; } } 

    Para la interfaz de red VPN

     for (Enumeration<InetAddress> en = vpnInterface.getInetAddresses(); en.hasMoreElements(); ) { InetAddress address = en.nextElement(); if (!address.isLoopbackAddress()) { String ip = address.getHostAddress(); break; } } 

    Y el InetAddress

    Eso es todo lo que sé por el momento ahora

    Para comprobar si está arriba, tal vez

     if (vpnInterface.isUp()) 

    Tengo implementado un código que se llama después de un tiempo serveral y envía un mensaje a los ApplicationHandlers

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.