Assinando eventos de presença
Uma assinatura de presença é representada como um identificador aberto exclusivo dentro do driver. Um evento será lançado para o cliente do driver sempre que o provedor NFP fizer a transição de não próximo para próximo ou próximo para não próximo.
Nota Atualmente, essa interface não fornece a capacidade de informar qual dispositivo próximo foi removido ou quais assinaturas chegam de qual dispositivo próximo quando dois dispositivos são ambos próximos.
Os eventos de presença são implementados usando o caminho de assinatura típico. As mensagens com o protocolo "DeviceArrived" ou "DeviceDeparted" DEVEM ser interpretadas como assinaturas especiais. A mensagem de chegada DEVE ser a primeira mensagem entregue imediatamente antes de entregar mensagens recebidas. A mensagem de partida DEVE ser a última mensagem entregue depois que não forem possíveis mais mensagens.
Subscription
Isso se parece apenas com uma assinatura regular, exceto pelos requisitos específicos a seguir.
Um dispositivo de proximidade e seu driver estão envolvidos no fluxo de protocolo de recebimento de mensagens de um dispositivo próximo.
Ações necessárias
O driver DEVE aceitar e relatar assinaturas duplicadas, mesmo se assinado pelo mesmo cliente.
Pouco antes de a primeira mensagem ser recebida quando próxima, o driver DEVE agir como se uma mensagem virtual "DeviceArrived" tivesse sido recebida.
Quando o provedor faz a transição para não ser próximo, o driver DEVE agir como se uma mensagem virtual "DeviceDeparted" tivesse sido recebida.
A mensagem "DeviceDeparted" NÃO DEVE ser entregue ao cliente antes que todas as outras mensagens tenham sido tratadas por esse cliente.
O conteúdo de uma mensagem DeviceArrived DEVE ser um único DWORD com os 31 bits altos definidos como zero e o bit menos significativo definido SOMENTE quando o primeiro dispositivo a se tornar próximo é capaz de comunicação bidirecional sustentada. Para NFC, isso equivale ao suporte a LLCP.
Se o primeiro dispositivo a se tornar próximo for apenas um dispositivo do tipo marca (por exemplo, uma Marca de Fórum NFC), o driver DEVERÁ limpar o bit menos significativo na carga da mensagem DeviceArrived.
O conteúdo de uma mensagem DeviceDeparted DEVE ser um único DWORD com um valor de 0.