Datos de enlace descendente de la ruta de Android vía WiFi y datos de enlace ascendente a través de la red móvil
¿Es posible en android para enrutar todo el tráfico de datos entrantes a través de WiFi y todo el tráfico saliente a través de la red móvil.
Encontrar una respuesta en stackoverflow Cómo Wifi y datos móviles funcionan simultáneamente en android para dispositivo OBD2 . Sin embargo, los datos de la ruta sólo para un host.
- ¿Cómo crear wifi tethering Hotspot en Android Marshmallow?
- Cómo ejecutar wifi peer to peer aplicación en el emulador de Android ..?
- Establecer la configuración de IP de Android, DNS, GATEWAY mediante programación
- Forzar Android a usar 3G cuando en el área local wifi sin acceso a la red
- Ubicación por dirección IP en interiores
También hay una aplicación de SuperDownload que utiliza wifi y red móvil para lograr velocidades de descarga más rápidas. Estoy tratando de hacer algo como esto.
En android WiFi y la red móvil no funciona simultáneamente. ¿Es posible hacerlo funcionar enraizando el dispositivo? (SuperDownload requiere root).
- Obtener la intensidad de la señal de WIFI y datos móviles
- Aplicaciones de Android, comunicación con un dispositivo conectado al puerto USB
- ¿Cómo comprobar WiFi es pasar a través de inicio de sesión de página web?
- Android: Fuerza los datos que se envían a través de radio vs WiFi
- Cómo deshabilitar el asistente de red cautiva en el dispositivo Android?
- Devolución de llamada en el dispositivo que se conecta a Wifi Hotspot
- Detectar la desconexión desde un punto de acceso WiFi
- Imprimir desde android sin sistema de diálogo
No es fácil lo que harías.
Primero en primer lugar debes mantener en la interfaz de red, esto es posible, pero es un hack porque Android no lo soporta. Para ello debe encender
connectivityManager.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, "feature");
El nombre de la función está relacionado con su hardware, debe ser enableHIPRI . El problema es que después de encender la interfaz esto se apagará después de algún tiempo, por esta razón debe realizar una solicitud http cada 20-30 segundos para mantenerlo. De esta manera la interfaz permanecerá encendida.
A la ruta, debe agregar ruta estática
connectivityManager.requestRouteToHost(ConnectivityManager.TYPE_MOBILE_HIPRI, ipAddressInt);
Donde ipAddressInt
es la dirección que desea conectar en 3G. Normalmente las rutas se envían a través de WiFi, por lo que para su GET (descarga en WiFi) no hay ningún problema, pero debe agregar una ruta para subir.
Y ahora hay 2 problemas,
- Primero es que de esta manera en 3G la resolución de DNS se ha ido, puede trabajar en IP, pero debe tener un servidor con IP estática,
- Segundo, no estoy seguro si funciona en un puerto específico (que es la única idea que tengo en este momento para hacerlo …).
Por supuesto que debe implementar otro hilo que mantener vivo la interfaz.
Creo que es imposible en absoluto. Piense, ¿cómo su destino puede encontrar la ruta de respuestas para entregarlo?
Permítanme ser más claro, cuando usted está tratando de obtener algo de la red (por ejemplo, una página web), debe poner su dirección IP y su dirección IP de destino en un paquete y enviarlo a la red (wifi o 3g) y el Red lo encaminhará a su destino. Cuando su respuesta está lista, el destino invierte el proceso y coloca su dirección IP como dirección de destino y su dirección IP como fuente y la libera a la red. Una vez más, la red usando esta información le encontrará y le entregará el paquete. Por lo tanto, nunca puede enviar información a una red (por ejemplo, wifi) y recibir la respuesta de otra red (por ejemplo, 3g).
Nota: Si todos los routers de medio camino toman conciencia de su objetivo (enviar y recibir desde y hacia dos redes diferentes), será posible hacerlo. En la actualidad, en algunos protocolos de enrutamiento especialmente en los routers de borde, que usualmente utilizan los gobiernos, algo así como su objetivo se trabaja para que superen la velocidad limitada de los medios de transmisión, por ejemplo, fibra óptica (tener más de 10/100 gbps).
- ¿Cuál podría ser la razón de esta excepción? Java.lang.RuntimeException: InputChannel no se inicializa
- Android Hexágono forma botón que tiene hexágono táctil