Transfiere 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 sí 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 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 por Bluetooth. ¿Esta sería una opción más adecuada para este tipo de operación?

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

Algunas posibles alternativas:

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

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

Detalles sobre por qué no puede conectar un dispositivo arbitrario al iPhone . iOS solo permite el uso de 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 progtwig 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 con Android no tienen este módulo, por lo tanto, aunque la conexión física sea posible de construir, el paso de autenticación fallará. La comunicación de iPhone a iPhone es posible ya que ambos extremos pueden autenticarse.

Tal vez un poco retrasado, pero las tecnologías han evolucionado desde entonces, por lo que sin duda hay nueva información que arroja nueva luz sobre el asunto …

Como iOS todavía tiene que abrir una API para WiFi Direct y Multipeer Connectivity solo para 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 como BLE Central y BLE Peripheral al mismo tiempo, en Android la situación es más compleja ya que no todos los dispositivos admiten el estado BLE Peripheral. Además, la stack de Android BLE es muy inestable (hasta la fecha).

Si su caso de uso se basa en funciones, le sugiero que consulte Frameworks y Bibliotecas que pueden lograr la comunicación multiplataforma para usted, sin que tenga que construirlo desde cero.

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

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

Puede usar p2pkit o la solución gratuita en la que se basa: https://github.com/GitGarage . No funciona muy bien, y es un fijador superior sin duda, pero es, bueno, gratis. Funciona para pequeñas cantidades de transferencia de datos en este momento.