Transferir datos entre iOS y Android a través de Bluetooth?


He estado leyendo sobre cómo transferir datos entre dispositivos iOS a través de Bluetooth utilizando GameKit. No estoy escribiendo un juego, per se, pero tengo la necesidad de transferir una pequeña cantidad de datos binarios entre dos dispositivos. Entre dos dispositivos iOS, esto es bastante fácil. Sin embargo, me preguntaba si es posible transferir datos entre un dispositivo iOS y un dispositivo Android a través del mismo mecanismo.

¿Alguien ha encontrado documentación/tutorial que explique cómo hacer esto? Es incluso técnicamente posible? ¿O Apple ha puesto algún tipo de restricción que evitaría esto?

La otra opción que descubrí fue Bonjour a través de Bluetooth. ¿Sería esta una opción más adecuada para este tipo de operación?

Author: lulalala, 2013-09-19

3 answers

Esta pregunta se ha hecho muchas veces en este sitio y la respuesta definitiva es: NO, no se puede conectar un teléfono Android a un iPhone a través de Bluetooth, y SÍ Apple tiene restricciones que lo impiden.

Algunas alternativas posibles:

  1. Bonjour a través de WiFi, como mencionaste. Sin embargo, no pude encontrar un tutorial completo para ello.
  2. Algunos servicios de sincronización basados en Internet, como Dropbox, Google Drive, Amazon S3. Estos suelen tener bibliotecas para varias plataformas.
  3. Comunicación directa TCP/IP a través de sockets. (Cómo escribir un pequeño servidor (socket) en iOS)
  4. Bluetooth Low Energy será posible una vez que se resuelvan los problemas en el lado de Android (Comunicación entre iOS y Android con Bluetooth LE)

Alternativa más fresca : use la API de Bump . Tiene soporte para iOS y Android y es muy fácil de integrar. Para cargas útiles pequeñas, esto puede ser lo más conveniente solución.

Detalles sobre por qué no puede conectar un dispositivo arbitrario al iPhone. iOS solo permite utilizar algunos perfiles bluetooth sin la certificación Made For iPhone (MFi) (HPF, A2DP, MAP...). El Perfil de puerto Serie que necesitaría para implementar la comunicación está vinculado a la membresía de MFi. La membresía a este programa le proporciona el módulo de autenticación MFi que debe agregarse a su hardware y se encarga de autenticar el dispositivo hacia el iPhone. Los teléfonos Android no tienen este módulo, por lo que a pesar de que la conexión física puede ser posible construir, el paso de autenticación fallará. La comunicación de iPhone a iPhone es posible ya que ambos extremos pueden autenticarse.

 76
Author: allprog,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:18:18

Tal vez un poco retrasado, pero las tecnologías han evolucionado desde entonces, por lo que ciertamente hay nueva información alrededor de la cual se extrae nueva luz sobre el asunto...

Como iOS aún no ha abierto una API para WiFi Direct y la conectividad Multipeer es solo iOS, creo que la mejor manera de abordar esto es usar BLE, que es compatible con ambas plataformas (algunas mejores que otras).

En iOS un dispositivo puede actuar tanto como un BLE Central y BLE Periférico al mismo tiempo, en Android la situación es más compleja como no todos los dispositivos soportan el estado periférico BLE. También la pila Android BLE es muy inestable (hasta la fecha).

Si su caso de uso está basado en características, le sugeriría que busque Marcos y Bibliotecas que puedan lograr la comunicación multiplataforma para usted, sin necesidad de construirla desde cero.

Por ejemplo: http://p2pkit.io o google cerca

Descargo de responsabilidad: Trabajo para Uepaa, desarrollando p2pkit.io para Android e iOS.

 2
Author: p2pkit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-03 16:09:04

Puedes usar p2pkit, o la solución gratuita en la que se basa: https://github.com/GitGarage . No funciona muy bien, y es un fixer-upper seguro, pero es, bueno, gratis. Obras para pequeñas cantidades de transferencia de datos ahora.

 2
Author: oMiKeY,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-25 06:42:23