2012-09-19 16 views
6

¿Es posible escribir una aplicación en Android usando la API wifi que actuará como un punto de acceso (permitiendo acceso de red a clientes wifi) mientras permite que el dispositivo wifi local se conecte a otra red wifi?Punto de acceso multiplexado en Android

El que he probado son deshabilitar la conexión Wi-Fi local con el fin de crear un punto de acceso.

Respuesta

9

he puesto aquí después de unos meses para que las personas que deseen implementar esto en un dispositivo Android podrían ser ayudados.

Hay una manera de tener un chip inalámbrico que trabaja en modo híbrido, tanto con el modo de estación (STA) y el modo de punto de acceso (AP) habilitado.

Para hacer esto, reemplacé el controlador inalámbrico de mi chip con un controlador inalámbrico multi-role. Afortunadamente, mi chip soportaba este modo, sin embargo, no es el caso para todos los chips inalámbricos. Mi chip es un chip basado en TI (wl1271), se admitía la función múltiple, aunque no estaba disponible con el controlador anterior.

Una vez que llegué este nuevo controlador, tuve que volver a compilar junto con mi núcleo con el fin de tener la .ko del controlador inalámbrico y los relativos mac80211 y cfg80211 módulos (que proporcionan las API que necesita el nuevo controlador) generados. El último paso fue actualizar wpa_supplicant y hostapd con una versión de parche personalizada proporcionada por TI.

Una vez más, para personas interesadas en wl1271única aquí están los conductores/herramientas que utilicé correspondientes e informó que trabaja en Android 4.0.4 ICS:

https://github.com/TI-OpenLink/hostap/tree/ol_R5.SP3.01

https://github.com/TI-OpenLink/iw/tree/ol_R5.SP3.01

https://github.com/TI-OpenLink/ti-utils/tree/ol_R5.SP3.01

https://github.com/TI-OpenLink/wl12xx_target_scripts/tree/ol_R5.SP3.01/sta

https://github.com/TI-OpenLink/compat/tree/ol_R5.SP3.01/

https://github.com/TI-OpenLink/compat-wireless/tree/ol_R5.SP3.01/

Si hay un controlador papel multifuncional para su chip inalámbrico, que podría valer la pena averiguar qué versión o parches de wpa_supplicant y hostapd te servirán, y compilar/probarlos.

Al final del proceso, tuve acceso a dos interfaces de red (wlan0 y wlan1), y pude ejecutar wpa_supplicant en wlan0 y hostapd en wlan1.

1

Lo que usted describe se llama WDS (Wireless Distribution System). Creo que esta funcionalidad no está implementada en la API wifi de Android. Se utiliza en AP inalámbricos para habilitar un enlace inalámbrico en sentido ascendente.

+0

Se refiere a lo que yo quería. Sin embargo, WDS parece envolver una gran cantidad de conceptos y protocolos. Solo quería algunos consejos simples sobre cómo hacer eso sin tener un sistema completo para compartir AP. Algunos aconsejan sobre cómo hacer eso con la API de Android (parece no implementada) o electrónicamente (tal vez usando un segundo dispositivo wifi) -> y cómo hacerlo en Android sin cambiar el kernel :). –

+0

@HQarroum Mi comprensión (y no soy un experto en esto) es que necesitaría al menos un AP con capacidad WDS y una implementación compatible de WDS en Android. Creo que esto no está implementado actualmente en Android, y por lo tanto requeriría un poco de codificación de bajo nivel ... – jhonkola

+0

¡Muchas gracias! Voy a investigar sobre esto más profundamente :) –

Cuestiones relacionadas