O Android oferece suporte à emulação de cartão fora do host, o que significa a 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 baseada 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 Projeto Android Open Source
(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 a NFC segura, implemente as seguintes APIs de framework encontradas no Android Open Source Project:
isSecureNfcSupported()
: verifica se o dispositivo oferece suporte ao recurso NFC seguro.isSecureNfcEnabled()
: verifica se o recurso NFC segura está ativado.enableSecureNfc(boolean enable)
: ativa o recurso NFC segura.
Interface das configurações
No app Configurações, adicione um botão para permitir que os usuários ativem e desativem o recurso NFC segura. Você pode personalizar a configuração padrão para ser ativada ou desativada no aplicativo Configurações.
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 de alternância 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. Desbloqueie para usar a notificação NFC na tela de bloqueio
Validação
Para validar sua 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.