O Android oferece suporte à emulação de cartão fora do host, o que significa emulação de cartão NFC com um elemento seguro. Para obter mais informações, consulte Visão geral da emulação de placa baseada em host .
Em certos casos de uso, como o uso do FeliCa para trânsito, 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.
Secure NFC é um recurso introduzido no Android 10 que permite que a emulação de cartão NFC fora do host seja habilitada apenas quando a tela do dispositivo estiver desbloqueada. A implementação desse recurso oferece aos usuários a opção de ativar o Secure NFC para melhorar a segurança.
Implementação
Para implementar o recurso Secure NFC, o dispositivo deve ter um controlador NFC que suporte o padrão NCI 2.0 e deve usar a estrutura NFC do Android Open Source Project (AOSP). Adicione o hardware ( ro.boot.hardware.sku
) que suporta o recurso Secure NFC no arquivo XML de recurso NFC com o atributo config_skuSupportsSecureNfc
.
APIs de estrutura
Para implementar o Secure NFC, implemente as seguintes APIs de estrutura encontradas no Android Open Source Project:
-
isSecureNfcSupported()
: verifica se o dispositivo suporta o recurso Secure NFC. -
isSecureNfcEnabled()
: verifica se o recurso Secure NFC está habilitado. -
enableSecureNfc(boolean enable)
: ativa o recurso Secure NFC.
IU de configurações
No aplicativo Configurações, adicione um botão de alternância para permitir que os usuários ativem e desativem o recurso Secure NFC. Você pode personalizar a configuração padrão no aplicativo Configurações para ser ativada ou desativada.
A Figura 1 mostra um exemplo de um botão de alternância para ativar e desativar o Secure NFC no aplicativo Configurações em Configurações > Dispositivos conectados > Preferências de conexão > NFC > Exigir desbloqueio do dispositivo para NFC .
Figura 1. Exemplo de chave seletora para ativar e desativar Secure NFC
Quando o Secure NFC está ativado e um usuário coloca o dispositivo em um leitor NFC, o Android exibe a notificação Desbloquear para usar 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, habilite o recurso Secure NFC e verifique se a emulação de cartão NFC está desabilitada quando a tela do dispositivo está desligada ou bloqueada e quando o dispositivo está desligado.