Qual a relação entre NFC e Bluetooth?

NFC e Bluetooth são tecnologias de comunicação de dados com características bem distintas. NFC funciona através da proximidade dos dispositivos, até um máximo de 20 cm, utilizando baixa taxa de transferência de dados, que no Windows Phone são usados apenas para leitura de tags NDEF e troca de dados de conexão. Enquanto o Bluetooth abrange uma área muito maior, cerca de 10 metros, possui uma taxa de transferência de dados bem maior, cerca de 2,1 Mbit/s dependendo do profile Bluetooth, sendo muito utilizado no contexto mobile para a troca de arquivos.

Dentro do Windows Phone, NFC é um facilitador na tarefa de estabelecer uma conexão, seja do tipo Bluetooth ou Wi-Fi de Infraestrutura. A API de comunicação da Proximity permite obter uma conexão através do evento PeerFinder.TriggeredConnectionStateChanged que observa as mudanças de estados, permitindo descobrir quando a conexão foi efetivada, ou seja, quando o estado TriggeredConnectState.Completed foi alcançado. O socket representando a conexão estabelecida é armazenado em args.Socket. Dessa maneira, o uso da Proximity fornece uma abstração do tipo de conexão realizada, o que permitiria no futuro o mesmo código lidar com conexões via Wi-Fi Direct. Abaixo segue um trecho de código para a identificação das mudanças de estados da conexão:

StreamSocket _streamSocket;

void OnTriggeredConnectionStateChanged(object sender, TriggeredConnectionStateChangedEventArgs args)
{

switch (args.State)
{

case TriggeredConnectState.Listening:
// Conectando como ouvinte

break;

case TriggeredConnectState.PeerFound:
// Identificação de proximidade foi realizada, restando iniciar o processo de estabelever a conexão utilizando um dos canais de comunicação disponíveis, como TCP/IP ou Bluetooth

break;

case TriggeredConnectState.Connecting:
// Conectando como cliente

break;

case TriggeredConnectState.Completed:
// Conexão completa, obtém socket responsável pelo envio de dados

_streamSocket = args.Socket;

break;

case TriggeredConnectState.Canceled:
break;

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

}
}

Logo, NFC é um desencadeador de possibilidades para o desenvolvimento de aplicações conectadas, e o Bluetooth é o canal de comunicação suportado no Windows Phone 8.0.

Last edited Aug 7, 2014 at 1:10 AM by brmontei, version 6