2012-03-07 34 views
18

¿Cuál es la mejor forma de comunicarse entre sí de una aplicación de Android instalada en dos dispositivos? ¿Pueden los dispositivos conectarse directamente sin usar mensajes de texto?Android: comunicación entre dos dispositivos

+0

Android Beam :) Pero eso solo está disponible en un puñado de dispositivos nuevos. –

Respuesta

12

Puede conectarlos a través de Bluetooth utilizando BluetoothSockets. El sitio web para desarrolladores de Android tiene una documentación bastante buena sobre esto.

http://developer.android.com/guide/topics/wireless/bluetooth.html

O si lo prefiere (y tener internet en ambos dispositivos), puede utilizar regularmente zócalo de.

http://developer.android.com/reference/java/net/ServerSocket.html para el lado del servidor http://developer.android.com/reference/java/net/Socket.html para el lado del cliente

Si usted tiene una gran cantidad de datos a transferir, tomas de Internet tienen una mayor capacidad de datos y serán más rápidos. La otra ventaja es que no existe tal cosa como "fuera de rango". Puede conectar los dos dispositivos donde esté disponible Internet, mientras que con bluetooth tienen que estar dentro del rango de bluetooth entre ellos

+0

Hola Derek, tengo algunas preguntas. Espero que respondas. ¿Cómo se supone que la aplicación obtenga la dirección IP del servidor? y también RMI funciona solo cuando ambos dispositivos usan la misma red, por casualidad ¿es lo mismo para enchufes? – Ruturaj

+1

¿"WiFi-Direct" no es una opción también? – Mick

1

Depende de lo que esté haciendo. Si tiene un servidor, es posible que pueda enviarle un mensaje y que el otro dispositivo lo retire (suponiendo que ambos tengan instalada la aplicación). Creo que esta sería la forma más intuitiva (pero realmente depende de lo que estás comunicando).

Los mensajes de texto y el correo electrónico pueden funcionar, pero usted (o el usuario) necesita saber los números/correos electrónicos asociados con un dispositivo para hacer eso.

0

La API NSD androide está destinado a hacer exactamente lo mismo que usted está tratando de lograr! ¡El ejemplo incluido con SDK es auto explicativo!

favor verifica:

Android NSD API example

14

Usted tiene varias opciones, dependiendo de sus necesidades y configuración:

  • Si los dispositivos están muy cerca uno del otro (hasta unos 10 metros) , puedes comunicarte usando Bluetooth, como sugirió Derek.
  • Si sus dispositivos están algo más alejados, pero dentro del alcance de Wi-Fi de unos a otros (hasta unos 100 metros), entonces pueden comunicarse entre ellos utilizando la API de WiFi punto a punto, documentada here (parte de Android API inalámbrica). Esto no requiere que esté presente un enrutador WiFi, y los dispositivos se encontrarán y se comunicarán directamente. Sin embargo, esto requiere Android 4.1 o superior.
  • La API inalámbrica de Android también funcionará si sus dispositivos están en la misma red local (es decir, usan el mismo enrutador WiFi), incluso si no están dentro del alcance de la otra.
  • Si ninguna de estas opciones es viable/garantizada, entonces estoy de acuerdo con Derek en que la forma más fácil sería usar ServerSocket y Socket para crear una interfaz servidor/cliente a través de Internet. Aquí hay un sample application haciendo eso.El principal problema que puede encontrar es que si el servidor está sentado detrás de un NAT (como un enrutador de Internet doméstico), tendrá que configurar el NAT para reenviar los paquetes entrantes a su servidor Android.
0

usted debe echar un vistazo a WifiDirect

Wi-Fi peer-to-peer (P2P) permite a Android 4.0 (API de nivel 14) o posterior dispositivos con el hardware adecuado para conectarse directamente a cada otros a través de Wi-Fi sin un punto de acceso intermedio.

Cuestiones relacionadas