¿Cómo iniciar una conexión de red local programmically a través de hotspot Wi-Fi en Android?
Quiero iniciar una conexión de red local mediante el hotspot Wi-Fi incorporado en dispositivos Android. ¿Hay una manera de lograrlo? ¿Y cómo comunicarse entre dos dispositivos?
EDIT: Quiero hacerlo programmically. Entonces puedo transferir mis propios datos entre los dispositivos.
- ¿Puedo obtener la dirección IP del punto de acceso a Estoy conectado a través de wifi?
- Conéctese con wifi particular programáticamente después de buscar las conexiones wifi disponibles
- Wi-Fi tethering - cómo obtener la lista de clientes conectados
- Android M: no se puede quitar Wi-Fi AP programáticamente
- La aplicación nunca recibe RSSI_CHANGED_ACTION
- ¿Cómo obtener la fuerza de conexión de los puntos de acceso Wifi?
- Cómo detener la exploración wifi en Android?
- BroadcastReceiver recibe varios mensajes idénticos para un evento
- Android: ¿Cómo obtener la encriptación Wifi actual?
- Detectar Si no hay conexión a Internet
- Android - Conexión a un dispositivo con adb over wifi
- Android prueba la conexión wifi programáticamente
- Cómo recibir ICS Wi-Fi hotspot enale / disable vía broadcastreceiver
No he hecho esto antes, así que mi respuesta es todo teórica.
Creo que lo que tiene que hacer es declarar un dispositivo del servidor y iniciar su hotspot manualmente con un nombre conocido.
¿Iniciar / detener la conexión Wi-Fi / USB del código? (De acuerdo con esta pregunta, no puede iniciar hotspot programatically).
Una vez que haya configurado el hotspot, inicia la aplicación de servidor y espera las conexiones entrantes. La aplicación del servidor puede mostrarle la dirección IP o el nombre de host.
En los clientes, puede realizar una comprobación sencilla y ver si el nombre del punto de acceso está cerca y conectarse automáticamente a él si lo encuentra. Vea este enlace para conectarse a una red:
Uso de WifiManager para conectarse a una red
En cuanto a su segunda pregunta, cómo comunicarse – es necesario establecer una conexión entre los dispositivos. Para ello, necesita la dirección IP del servidor. La cosa más simple a hacer sería mostrar la dirección IP en la interfaz de usuario del servidor y luego introducirlo manualmente en los clientes y pulsar conectar. Entonces establecería una conexión al servidor en un puerto conocido y usted puede enviar mensajes entre el cliente y el servidor.
Como referencia, he encontrado NanoHttpd , que es un servidor web para Android. Utiliza ServerSocket para escuchar las conexiones entrantes.
Respuestas posibles:
Antes de ICS y dispositivos no enraizados
No hay forma de conectarse a un dispositivo a través de wifi. No hay API que hacer. Bluetooth es su mejor opción o interacción con el usuario.
Antes de ICS y dispositivos enraizados
No estoy seguro si alguien hackeó el código, pero cuando traté de hacer una conexión automática a un lugar wifi me di cuenta:
- La API está oculta dentro del SDK.
- El método que realiza la conexión comprueba el subproceso que lo solicita. Si no es el hilo del sistema operativo, se produce una excepción.
Uso de ICS
Con ICS hay una nueva forma de conectar dispositivos a través de Wi-Fi llamado Wi-Fi Direct . Aquí hay un enlace con algunas demos.
Esto ayudará a iniciar. Link1
Si va a desarrollar su propia aplicación para cada uno de los terminales individuales (dispositivos), entonces creo que para la programación socket hará el truco.
Sí, androide soporta la programación de socket en la misma era como la programación de java socket.
1 º google java socket programación de tutoriales y luego se puede utilizar el mismo conocimiento en android.
También recuerdo incluir el permiso de Internet de usos en el manifiesto, en realidad eso es algo que se comió mi cerebro por mucho tiempo 🙂
¿Te refieres a la comunicación entre dispositivos wifi habilitados sin ningún servidor como p2p? Si es así su wifi directo que es compatible con ICS comprobar esto http://developer.android.com/reference/android/net/wifi/p2p/package-summary.html
Antes de ICS no hay una API estándar de Android para wifi directo, aunque Galaxy S2 tiene wifi directo que utiliza API propietaria que los desarrolladores de terceros no pueden usar.
No sé programmically crear wify LAN, pero usted puede crear wify LAN manualmente, entonces usted puede hacer java tcp / udp programa como dijo brianestey
"En cuanto a su segunda pregunta, la forma de comunicarse – que necesita para establecer una conexión entre los dispositivos.Para ello, necesita la dirección IP del servidor.La cosa más simple que hacer sería mostrar la dirección IP en el servidor de la interfaz de usuario y A continuación, introduzca manualmente en los clientes y presione conectar.Esto establecería una conexión con el servidor en un puerto conocido y puede enviar mensajes entre cliente y servidor.
Para la conexión manual siga los pasos
-
Tomar ajustes / redes inalámbricas y redes / wi-fi portátil configuración de puntos de acceso desde cualquiera de los teléfonos
-
Crear un nuevo hotspot y activar el hotspot portátil wi-fi desde allí
-
Conecte todo el otro dispositivo a ese hotspot incluyendo su PC
-
Obtendrá ip de cada dispositivo programmically (includig pc, pero no sé)
- Obtén la versión de Google Chrome en la aplicación de ARC
- ¿Por qué NO obtengo una excepción de memoria perdida?