2012-02-03 16 views
10

Estoy trabajando en una importante versión de producto para mi empresa. Estamos diseñando un nuevo dispositivo que nos gustaría integrar en una aplicación de iOS. (Para su información, recientemente hemos sido aceptados en el programa Apple MFi, así que hemos pasado ese paso.)¿Cuál es la forma más sencilla de conectar un dispositivo a un iPad desde una aplicación?

Lo que deseamos es crear un ecosistema de hardware/software donde nuestros usuarios puedan iniciar nuestra aplicación para iPad (sí, es específico para el iPad y los dispositivos que no son iPhone o iPod Touch) y la aplicación descubrirá automáticamente y se conectará con cualquier hardware de proximidad que hayamos desarrollado.

Esto significa que tendré que implementar algún tipo de proceso de conexión del dispositivo tanto en el iPad como dentro del hardware.

¿Hay alguna manera de codificar la conectividad automática a un dispositivo Bluetooth desde una aplicación de iOS?

Conozco el Core Bluetooth Framework que tiene esta capacidad, sin embargo, solo funciona con el nuevo iPhone 4S. Esa no es una opción.

También he investigado sobre el Marco de accesorios externo, que se puede utilizar para conectar dispositivos externos si están conectados a través del puerto del iPod o Bluetooth. Esta es una opción pero, si mi comprensión es correcta, nuestro hardware ya debe estar emparejado con iPad antes de que el software de iOS pueda conectarse. Esto es menos que preferible porque, aunque muchos de nuestros dispositivos pueden no estar en las cercanías inmediatas en un momento determinado, nuestros clientes podrían ser propietarios de 100 dispositivos a los que pueden querer conectarse con nuestro software.

¿Cuáles son mis opciones razonables o alternativas? El objetivo final es proporcionar un medio muy fácil para que nuestros usuarios puedan conectarse a nuestros dispositivos, desde nuestro software, en un iPad.

NOTA: NO DEBO hacer jailbreak en el iPad ni romper ningún acuerdo de Apple TOS.

ACTUALIZACIÓN (03/07/2012) vi hoy que el 'nuevo iPad' (a medida que se llama oficialmente) será Bluetooth 4.0 capable. Supongo que esto significa que este dispositivo iPad podrá usar Core Bluetooth Framework. Esto no resuelve inmediatamente mi problema porque queremos seguir siendo compatibles con, al menos, el dispositivo iPad de "última generación", pero vale la pena señalar para otros que pueden estar buscando esa respuesta.

+0

Me pregunto si obtendrás alguna respuesta, ya que todo esto (como suele ser habitual) en términos de NDA.Y para el logotipo "Hecho para iPad": esto recuerda a las viejas CPU Intel 486 con una impresión "Compatible con Windows" :-) –

+0

Sí, prácticamente todo lo que puede hacer para desarrollar hardware para un dispositivo iOS está cubierto por una NDA . Sin embargo, en este caso estoy hablando de comunicarme con un dispositivo de iOS. Me imagino que puede haber opciones que puedan discutirse porque el software escrito para un dispositivo con iOS no está cubierto por los acuerdos de MFi ya que están estrictamente relacionados con el desarrollo del hardware. – RLH

+0

Modifiqué ligeramente esta pregunta para que quede claro que no estoy buscando respuestas sobre cómo hacerlo desde el lado del hardware. Mi pregunta es específica para las opciones de conectividad del software de iOS. ¿Qué puedo hacer desde mi proyecto iOS para conectarme fácilmente al hardware Bluetooth que puedo controlar? – RLH

Respuesta

1

No puede conectar un dispositivo iOS a un dispositivo bluetooth sin emparejar primero. Es construido deliberadamente de esa manera por Apple para reducir la probabilidad de que alguien pueda conectar un dispositivo bluetooth sin que el usuario lo sepa. Si el emparejamiento de cada dispositivo es inaceptable (y parece que lo es), y no desea desarrollar un dongle, la única ruta que puedo ver es hacer que sus dispositivos sean capaces de transmitir datos entre ellos como una red de malla. De esa forma, el usuario solo tendría que vincularse con un solo dispositivo, y esa unidad emparejada transmitirá las comunicaciones entre los otros dispositivos y el iPad.

1

Una de sus alternativas sería ir WiFi (AdHoc o Infraestructura) con Bonjour. Por ejemplo, usted podría detectar el dispositivo cercano (si está manteniendo su propio AdHoc luego mediante SSID, si está en la red de infraestructura y luego se anunciará el servicio). Un gran inconveniente sería que no se podía conectar directamente (desde la aplicación) a la red del dispositivo; el usuario tendría que hacerlo manualmente.

En cuanto a BT: gran inconveniente es la falta de un protocolo de serie (no implementado en iPhone/iPod/iPad).

+0

Necesitamos este mecanismo Bluetooth como medio secundario de comunicación por varias razones. El hardware que desarrollamos puede conectarse a una red local y, de hecho, nuestra versión actual del producto sí lo hace. Sin embargo, no todos los clientes tienen la capacidad de conectar sus dispositivos en red debido a restricciones físicas y de ubicación (WiFi o cableado). Además, esta aplicación tendrá un modo superusuario para nuestros técnicos de soporte. También usarán esta aplicación, o una similar, para conectarse a nuestros dispositivos, solucionar cualquier problema. Por experiencia, nuestros técnicos necesitan los medios más simples posibles para conectarse a estos dispositivos. – RLH

+0

A, ok. Cuando preguntabas sobre alternativas, no vi que tuviera que ser BT. El problema con los dispositivos iOS es que admiten (en el mejor de los casos) solo perfiles HFP 1.5, PBAP, A2DP, AVRCP, PAN, HID (http://support.apple.com/kb/HT3647) ... esto es tanto como Puedo decir sin infringir NDA –

+0

que puede hacer que un dispositivo sea detectable a través de BT y luego ir por el módem de audio BT (y un módem en código en el lado de iOS) pero esto es como reinventar la rueda –

Cuestiones relacionadas