2009-06-30 17 views
27

Estoy tratando de averiguar si un iPhone se puede conectar a otro dispositivo que no sea iPhone a través de la conexión inalámbrica o Bluetooth y haya visto información conflictiva. Mucho de lo que encontré fue antes de que saliera la versión 3.0 del SDK, cuando ciertamente no era posible. En cuanto a Stack   Preguntas de desbordamiento, como Can the iPhone 3.0 SDK provide full access to Bluetooth devices (headsets)? menciona que no puede conectarse a un dispositivo arbitrario a menos que sea parte del dispositivo "Works for iPhone". ¿Necesito hardware que sea parte de este programa?¿Cómo puede un iPhone acceder a otro dispositivo que no sea iPhone a través de la conexión inalámbrica o Bluetooth?

Revisando la documentación de Apple, Peer-to-Peer Connectivity, menciona la conexión de dos iPhones, no un iPhone a otro dispositivo Bluetooth. Luego están los artículos como iPhone SDK focus: Bluetooth enhancements que incluye esta cita

... y con el recientemente anunciado "soporte estándar" debe permitir la transferencia de archivos entre el iPhone y un ordenador, así como entre iPhones cercanas

Otra cuestión Pila   desbordamiento, GameKit in iPhone SDK 3.0, menciones Bonjour y the Apple documentation for Bonjour habla de la conexión a dispositivos Bonjour, pero se puede conectar un iPhone a cualquier dispositivo Bonjour? ¿Tiene que tener una conexión Wi-Fi, o puede usar Bluetooth?

Incluso si pudiera usar Bluetooth para conectarme a otro dispositivo, no estará disponible en los iPhones e iTouch de primera generación, creo. ¿Es eso correcto? Estoy pensando en una aplicación de iPhone que necesite comunicarse con otros dispositivos que no sean iPhone en el área, probablemente usando Bluetooth, pero posiblemente una conexión inalámbrica directa. ¿Cuáles son las posibilidades y limitaciones de este enfoque? ¿No es posible tener un iPhone conectado a un dispositivo Bluetooth arbitrario? ¿El otro dispositivo tiene que estar en una red inalámbrica Bonjour? Estoy tratando de averiguar si es posible que esto funcione o si no vale la pena el esfuerzo.

Respuesta

12

La única manera de comunicarse con otros dispositivos Bluetooth a través del marco External Accessory en el iPhone OS 3.0 es si están en el programa Made for iPod accessory. A pesar de que se comunican a través de conexiones Bluetooth estándar, los accesorios necesitan hardware especial para procesar la secuencia de datos proveniente del iPhone/iPod touch. Desafortunadamente, esto significa que su idea de comunicarse con dispositivos Bluetooth genéricos no funcionará en iPhone OS 3.0.

Si los dispositivos que desea hablar con Bonjour-son detectables a través de Wi-Fi, ellos no necesitan ser parte del programa de Hecho para iPod. Sin embargo, eso no suena como tu caso.

Los desarrolladores de terceros en el futuro cercano pueden producir dongles que se conectan a través del puerto de conexión de 30 pines y dan acceso a dispositivos Bluetooth existentes. Si estos desarrolladores abrieron su protocolo de comunicación, eso podría permitir su objetivo de comunicarse con estos dispositivos.

+0

Gracias por la información: cuanto más leo, más pensé que Bluetooth no sería una opción viable a menos que los dispositivos estén en el programa Made for iPod. En cuanto a Bonjour, ¿el iPhone/iTouch debe estar en una red inalámbrica para descubrir un dispositivo Bonjour? ¿Hay alguna limitación de alcance para Bonjour, o es solo a qué rango puede transmitir el otro dispositivo? –

+0

Bonjour es simplemente un protocolo de descubrimiento, por lo que su rango es el rango de su red. Está destinado para su uso en una red de área local, por lo que significa que el iPhone debe estar en una red WiFi. Sin embargo, los propios dispositivos podrían estar cableados o conectados a la red por otros medios. –

+1

No, el iPhone no tiene que estar en una red wifi: usará * cualquier * dispositivo de red disponible en el sistema, en particular: Bluetooth. Para iOS6 en adelante, Apple inhabilita la búsqueda de BT para Bonjour por defecto (explicación de Apple (excusa) para hacer este cambio disruptivo, y las instrucciones de solución oficiales https://developer.apple.com/library/ios/qa/qa1753/_index. html # // apple_ref/doc/uid/DTS40011315) – Adam

1

Puede usar NSStream para abrir las tomas IPv4/IPv6 en el iPhone. Los dispositivos a los que te estás conectando no tienen que ser iPhone o utilizar necesariamente Wi-Fi. Debido a cómo se establecen los protocolos de comunicación de red, simplemente no tiene que importar con qué tipo de dispositivo se está comunicando su iPhone.

Bonjour, por otro lado, usa internamente NSStream. Básicamente es una pequeña envoltura ingeniosa que permite el autodescubrimiento. Necesita el protocolo Bonjour instalado en todos los dispositivos en los que desea participar en el proceso de descubrimiento automático. Incluso hay una implementación para Windows.

+0

Lo siento por las muchas preguntas: el problema subyacente es que el iPhone se puede conectar a un dispositivo arbitrario. Por ejemplo, si la aplicación es para leer medidores eléctricos, me gustaría poder entrar a una habitación y conectarme a cualquier medidor sin saber nada sobre un medidor específico (ID Bluetooth, dirección IP, etc.). Parece que sería posible con Bonjour (si los medidores soportaban el protocolo), pero no con Bluetooth. ¿Es eso correcto? Para conectarse a otro dispositivo Bonjour, ¿el iPhone necesitaría estar en una red inalámbrica o estar conectado a través de Bluetooth? No parece así. –

+0

Si entiendo correctamente, ¿está preguntando cómo podría obtener una lista de todos los medidores bluetooth dentro del alcance de su iphone? Sé que los dispositivos Bluetoth pueden autodescubrirse entre sí, pero no creo que utilicen Bonjour (Zeroconf) para hacerlo. Estoy bastante seguro de que el protocolo en sí es específico para bluetooth. ¡Parece un proyecto genial! –

+0

Es posible que desee invertir tiempo en el marco de Accesorio externo, publicado con 3.0 –

0

Como parte del iPhone OS 3.0 SDK, Apple anunció la posibilidad de controlar los accesorios de hardware a través de Bluetooth o el conector de base. El conector de base admite protocolos estándar (es decir, reproducción, pausa, etc.) así como también cualquier protocolo personalizado que el desarrollador desee implementar.

En cuanto a la conexión a través de Bluetooth, puede hablar con otros iPhones u otros dispositivos. Por ejemplo, puede usar Bluetooth estéreo para conectar auriculares estéreo Bluetooth compatibles, kits de automóvil u otros accesorios.

En cuanto a qué dispositivos admiten la comunicación Bluetooth, todo, excepto la primera generación del iPod Touch, debería estar bien.

Véase también Apple's page on iPhone OS accessories.

+1

Esos son todos dispositivos "Made for iPhone". ¿Es esa la única forma de conectarse a un dispositivo Bluetooth? Además, según la [documentación de Apple] (http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/GameKit_Guide/GameKitConcepts/GameKitConcepts.html#//apple_ref/doc/uid/TP40008304-CH100- SW1), la red Bluetooth no es compatible con el iPhone original o con el iPod Touch de primera generación. Tampoco es compatible con Simulator. –

+0

Ese enlace a los accesorios del iPhone OS parece haber salido mal. – ThomasW

Cuestiones relacionadas