O Android oferece suporte à emulação de cartão fora do host, ou seja, emulação de cartão NFC com um elemento de segurança. Para mais informações, consulte Visão geral da emulação de cartão com base em host.
Em alguns casos de uso, como o uso de FeliCa para transporte público, a emulação de cartão fora do host é permitida quando a tela de um dispositivo está bloqueada ou desligada ou quando um dispositivo está desligado.
O recurso NFC segura é um recurso introduzido no Android 10 que permite que a emulação de cartão NFC fora do host seja ativada apenas quando a tela do dispositivo está desbloqueada. A implementação desse recurso oferece aos usuários a opção de ativar o NFC segura para melhorar a segurança.
Implementação
Para implementar o recurso NFC seguro, o dispositivo precisa ter um controlador NFC que
ofereça suporte ao padrão NCI 2.0 e use o framework NFC do Android Open Source Project
(AOSP). Adicione o hardware (ro.boot.hardware.sku
) que oferece suporte
ao recurso NFC seguro no
arquivo XML de recurso
do NFC com o atributo config_skuSupportsSecureNfc
.
APIs do framework
Para implementar o NFC seguro, implemente as seguintes APIs de framework encontradas no Projeto de código aberto do Android:
isSecureNfcSupported()
: verifica se o dispositivo oferece suporte ao recurso NFC seguro.isSecureNfcEnabled()
: verifica se o recurso NFC seguro está ativado.enableSecureNfc(boolean enable)
: ativa o recurso de NFC segura.
Interface de configurações
No app Configurações, adicione um botão para permitir que os usuários ativem e desativem o recurso NFC segura. É possível personalizar a configuração padrão no app Configurações para que ela seja ativada ou desativada.
A Figura 1 mostra um exemplo de um botão de alternância para ativar e desativar o NFC seguro no app Configurações em Configurações > Dispositivos conectados > Preferências de conexão > NFC > Exigir desbloqueio de dispositivo para usar a NFC.
Figura 1. Exemplo de botão para ativar e desativar a NFC segura
Quando a NFC segura está ativada e um usuário coloca o dispositivo em um leitor de NFC, o Android mostra a notificação Unlock to use NFC na tela de bloqueio, conforme mostrado na Figura 2.
Figura 2. Notificação "Desbloqueie para usar a NFC" na tela de bloqueio
Validação
Para validar a implementação, ative o recurso NFC segura e verifique se a emulação de cartão NFC está desativada quando a tela do dispositivo está desligada ou bloqueada e quando o dispositivo está desligado.