O Android suporta 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 determinados casos de uso, como o uso do 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.
Secure NFC é um recurso introduzido no Android 10 que permite que a emulação de cartão NFC fora do host seja habilitada somente quando a tela do dispositivo estiver desbloqueada. A implementação desse recurso oferece aos usuários a opção de habilitar o Secure NFC para aumentar a segurança.
Implementação
Para implementar o recurso Secure NFC, o dispositivo deve ter um controlador NFC compatível com 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 oferece suporte ao 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)
: habilita o recurso Secure NFC.
IU de configurações
No aplicativo Configurações, adicione uma chave 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 habilitar ou desabilitar.
A Figura 1 mostra um exemplo de uma chave 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. Chave de alternância de exemplo para ativar e desativar o 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. Desbloquear 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.