2011-11-02 14 views
7

¿Cómo se puede hacer una aplicación de Mac Bluetooth que se conecta con una aplicación para iOS y envía mensajes?Bluetooth/WiFi entre Mac y iOS aplicación

O una aplicación para iOS que se conecta con una aplicación de Mac a través de una red Wi-Fi local?

Respuesta

5

NOTA: esta respuesta está desactualizada ya que con la introducción de CoreBluetooth (Bluetooth LE v4) desde iOS6 y OSX 10.7 cualquier dispositivo iOS está abierto a cualquier tipo de comunicación con cualquier otro dispositivo compatible con BLE, ya sea una Mac o PC o hardware externo. La respuesta siguiente sigue siendo válida si no puede admitir BLE, debido a requisitos antiguos o específicos (por ejemplo, ancho de banda requerido)

Por lo que yo sé, esto es casi imposible. La conexión Bluetooth entre dispositivos iOS está bien soportada con el framework GameKit, pero no hay soporte para la conexión con otros sistemas operativos, incluido OSX. La única conexión entre Mac e iPHone que he visto es con la función de punto de acceso (cuando funciona). Considere, por ejemplo, la aplicación Keynote Remote. Esta aplicación te permite controlar una presentación de Keynote usando tu iPhone como control remoto. Permite este control cuando los dos dispositivos están emparejados con Keynote en el WiFi, pero esta conexión no está permitida mediante Bluetooth, mientras que con Bluetooth puede controlar una presentación de Keynote entre dos dispositivos iOS. Y usted puede encontrar esta declaración en la nota de Apple Tech 2152:

An important consequence of the first point is that Bluetooth peer-to-peer networking can only be used to communicate between iOS devices; you can't use it, for example, to communicate between an iOS device and a computer running Mac OS X.

En cuanto a la cuestión de WiFi (se me olvidó para responder a ella en mi primera pregunta) esencialmente a que tipo de problemas a resolver: la visibilidad y la transferencia de datos . Para determinar si dos dispositivos están en la misma red, puede usar el protocolo Bonjour. Esencialmente, una de las máquinas se publica como proveedor de servicios para un servicio específico (puede crear su propio servicio, por ejemplo, "_mytype._myprotocol") y el cliente potencial buscará un servidor. . Además Bonjour se ocupa de otras cosas como el direccionamiento y DNS sin las dos aplicaciones a conocer los detalles de la red local que están en Esto se explica en documentos de Apple aquí: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/NetServices/Articles/about.html Tenga en cuenta que Bonjour está en la base de características como AirPlay (Apple TV), AirPrint y probablemente también AirDrop, pero es compatible con una gran cantidad de dispositivos, por ejemplo, algunos NAS. En la sección SampleCodes del sitio de desarrolladores de Apple, encontrará un gran ejemplo, llamado "BonjourWeb", que muestra cómo funciona el descubrimiento de servicios. Puedes probarlo fácilmente en tu simulador o dispositivo de iPhone y si tienes algún dispositivo compatible con Bonjour lo verás en la lista. El segundo problema, por supuesto, es la comunicación de datos real entre los dos dispositivos, depende de usted definir un cliente/servidor personalizado o usar un enfoque estándar basado en el servidor web. Esto depende de la aplicación y el flujo de datos. El primer enfoque es mejor, ya que es altamente personalizable, se debe estudiar los conceptos NetworkStreams y ver el código SimpleNetworkStreams en la biblioteca de manzana (se trata de una aplicación de comunicación simple entre un Mac y un iPhone, no siempre funcionaba pero es un buen punto de partida punto)

+0

thansk! pero ¿cómo puedo parar dos dispositivos? – rafa

+0

Tu respuesta es más que un comentario. La pregunta es cómo puede, no es posible. – Mark

+2

La primera respuesta fue un comentario autoexplicativo: si no es posible, no puedes. De todos modos, he agregado una conclusión para que quede claro. También agregué detalles a la segunda parte de la pregunta que me perdí la última vez. – viggio24

Cuestiones relacionadas