7 votos

¿Cómo intercambiar mensajes entre 2 dispositivos Android a través de wifi y bluetooth sin internet?

Actualmente estoy trabajando en la creación de una aplicación para dispositivos móviles con Android que debería ser capaz de enviar y recibir mensajes a través de medios locales como wifi y bluetooth. Después de hacer una investigación al respecto descubrí que Android no tiene una funcionalidad wifi ad hoc nativa y que la única forma de conseguirlo es a través de rootear tu dispositivo y Parcheando el wpa_suplicant y algunos otros métodos similares que no son genéricos para todos los dispositivos.

Sinopsis de lo que pretendo conseguir:

Una aplicación para Android que busca dispositivos cercanos e intenta conectarse a ellos automáticamente. Si el otro dispositivo también tiene instalada esta aplicación, acepta automáticamente cualquier solicitud de conexión que reciba y, cuando se establece la conexión, devuelve un mensaje que asegura que tiene instalada esta aplicación, de modo que ambos pueden empezar a intercambiar mensajes automáticamente y los usuarios no tienen que permitir/denegar ningún envío/recepción en tiempo real.

Mis preguntas son:

  1. ¿Hay alguna manera de enviar mensajes a través de wifi entre 2 dispositivos Android sin el uso de internet?

  2. Dado que Ad Hoc no es compatible, ¿hay alguna alternativa?

  3. En caso de que la respuesta a la pregunta 2 sea no, ¿es posible hacer que uno de los dispositivos sea un punto de acceso para que el otro pueda conectarse a él y viceversa?

  4. En cuanto al bluetooth, ¿es posible omitir o automatizar la aparición de permitir/denegar una conexión entrante y el procedimiento de emparejamiento?

Estaré encantado de que me den una respuesta a estos y/o cualquier sugerencia.

3voto

Atul Goyal Puntos 335

Yo mismo he trabajado en proyecto similar en el que no sólo los mensajes de texto, también nos interesaba tener un chat de audio (en tiempo real). Como has señalado, Android no soporta realmente la funcionalidad wifi ad-hoc a partir de ahora (como u dijo que Parcheando el wpa_suplicant no es genérico y francamente yo llamaría a ese método inútil). También como sus necesidades incluso yo quería NO usar internet, así que al no ser capaz de encontrar otra manera, para ese momento sólo fui con el uso de cualquier conexión wifi local en la proximidad para conectarse con (sólo para ser claros, todavía no estamos usando internet) Espero que esto posiblemente responde a sus puntos 1/2/3. No estoy seguro de si existe una solución mejor para 1/2/3 al menos mientras la gente de Android no permita crear un ad-hoc (o al menos unirse hasta ahora uno no puede ni siquiera unirse a un ad-hoc wifi desde Android si estoy en lo cierto)

En cuanto al punto 4, lamento decir que la respuesta también es "No". Cuando dos dispositivos se conectan por primera vez, el emparejamiento tiene que ocurrir. Y, por lo que recuerdo (hice este proyecto hace unos meses y no he tenido tiempo de continuar / construir) para las conexiones posteriores a los dispositivos ya emparejados no pidió ninguna confirmación, además de nuestra propia confirmación que pedimos para aceptar la llamada de voz entrante. Aparte de ese método bluetooth en realidad funcionó perfectamente bien.

Espero que eso haya ayudado. Hágame saber si hay algo que pueda aclarar más.

-Atul

1voto

Lie Ryan Puntos 15629

Este caso de uso tiene ahora una solución obvia a largo plazo:  Android Beam/NFC. Sin embargo, aún no hay muchos dispositivos que soporten NFC, por lo que todavía es necesario utilizar otras técnicas.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X