¿Cuál es la relación entre NFC y Bluetooth?

NFC y Bluetooth son tecnologías de comunicación de datos con características bien distintas. NFC funciona a través de la proximidad de los dispositivos, hasta un máximo de 20 cm, utilizando una baja tasa de transferencia de datos, donde en Windows Phone se utilizan sólo para la lectura de tags NDEF e intercambio de datos de conexión. Mientras que el Bluetooth cubre un área mucho mayor, cerca de 10 metros, posee un tasa de transferencia de datos bastante mayor, alrededor de 2,1 Mbit/s dependiendo de la categoría de Bluetooth, siendo muy utilizado en el contexto móvil para intercambiar archivos.

Dentro de Windows Phone, NFC es un facilitador en la tarea de establecer una conexión, ya sea del tipo Bluetooth o Wi-Fi de Infraestructura. La API de comunicación de Proximity permite obtener una conexión a través del evento PeerFinder.TriggeredConnectionStateChanged que observa los cambios de estados, permitiendo descubrir cuándo se realizó la conexión, o sea, cuándo se alcanzó el estado TriggeredConnectState.Completed. El socket que representa la conexión establecida se almacena en args.Socket. De este modo, el uso de Proximity proporciona una abstracción del tipo de conexión realizada, lo que permitiría en el futuro al mismo código manejar las conexiones a través de Wi-FiDirect. A continuación se muestra un fragmento de código para la identificación de los cambios de estados de conexión:


StreamSocket _streamSocket;

void OnTriggeredConnectionStateChanged(object sender, TriggeredConnectionStateChangedEventArgs args)
{

switch (args.State)
{

case TriggeredConnectState.Listening:
// Conectado como oyente

break;

case TriggeredConnectState.PeerFound:
// Se realizó la identificación de proximidad, restando iniciar el proceso de establecer la conexión utilizando uno de los canales de comunicación disponibles, como TCP/IP o Bluetooth 

break;

case TriggeredConnectState.Connecting:
// Conectado como cliente

break;

case TriggeredConnectState.Completed:
// Conexión completa, obtiene socket responsable por el envío de datos 

_streamSocket = args.Socket;

break;

case TriggeredConnectState.Canceled:
break;

case TriggeredConnectState.Failed:
// Connection was unsuccessful
break;

}
}

Entonces, NFC es un desencadenador de posibilidades para el desarrollo de aplicaciones conectadas, y Bluetooth es el canal de comunicación compatible con Windows Phone 8.0.

Last edited Aug 7, 2014 at 12:52 AM by brmontei, version 3