O Android oferece suporte à emulação de cartão fora do host, o que significa 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 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.
O NFC segura é um recurso introduzido no Android 10 que 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 segura, o dispositivo precisa ter um controlador NFC que ofereça suporte ao padrão NCI 2.0 e usar a estrutura NFC do Android Open Source Project (AOSP). Adicione o hardware (ro.boot.hardware.sku) que oferece suporte
ao recurso NFC segura no arquivo XML de recurso NFC
com o atributo config_skuSupportsSecureNfc.
APIs do framework
Para implementar o NFC segura, implemente as seguintes APIs do framework encontradas no Android Open Source Project:
isSecureNfcSupported(): verifica se o dispositivo oferece suporte ao recurso NFC segura.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 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 ser ativada ou desativada.
A Figura 1 mostra um exemplo de botão de alternância para ativar e desativar o NFC segura no app Configurações em Configurações > Dispositivos conectados > Preferências de conexão > NFC > Exigir desbloqueio do dispositivo para usar a NFC.
Figura 1. Exemplo de botão de alternância para ativar e desativar o NFC segura
Quando o NFC segura está ativado e um usuário coloca o dispositivo em um leitor de NFC, o Android mostra a notificação Desbloqueie para usar a 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 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.