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 determinados 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 foi lançado no Android 10 e permite que a emulação de cartões 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
suporte o 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 recursos
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 é compatível com o recurso NFC seguro.isSecureNfcEnabled()
: verifica se o recurso NFC seguro está ativado.enableSecureNfc(boolean enable)
: ativa o recurso NFC segura.
Interface de configurações
No app Configurações, adicione um botão de alternância 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 ativar ou desativar.
A Figura 1 mostra um exemplo de 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 chave de alternância para ativar e desativar a NFC segura
Quando o NFC seguro está ativado e um usuário coloca o dispositivo em um leitor de NFC, o Android mostra a notificação Desbloquear para usar o 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 sua implementação, ative o recurso NFC seguro 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.