Android admite la emulación de tarjetas fuera del host, lo que significa la emulación de tarjetas NFC con un Elemento seguro. Para obtener más información, consulta la descripción general de la emulación de tarjetas basada en el host.
En ciertos casos de uso, como el uso de FeliCa para el transporte público, se permite la emulación de tarjetas fuera del host cuando la pantalla de un dispositivo está bloqueada o apagada, o cuando un dispositivo está apagado.
La opción Proteger NFC es una función que se introdujo en Android 10 y que permite que la emulación de la tarjeta NFC fuera del host se habilite solo cuando la pantalla del dispositivo esté desbloqueada. La implementación de esta función brinda a los usuarios la opción de habilitar NFC seguro para mejorar la seguridad.
Implementación
Para implementar la función de NFC seguro, el dispositivo debe tener un controlador NFC que admita el estándar NCI 2.0 y debe usar el framework de NFC del Proyecto de código abierto de Android (AOSP). Agrega el hardware (ro.boot.hardware.sku) que admite la función de NFC seguro en el archivo de recursos XML de NFC con el atributo config_skuSupportsSecureNfc.
APIs de Framework
Para implementar NFC seguro, implementa las siguientes APIs de framework que se encuentran en el Proyecto de código abierto de Android:
isSecureNfcSupported(): Comprueba si el dispositivo admite la función de NFC seguro.isSecureNfcEnabled(): Verifica si la función NFC segura está habilitada.enableSecureNfc(boolean enable): Habilita la función Proteger NFC.
IU de configuración
En la aplicación de configuración, agrega un botón de activación para permitir que los usuarios habiliten y deshabiliten la función Proteger NFC. Puedes personalizar el parámetro de configuración predeterminado en la aplicación Configuración para que esté habilitado o inhabilitado.
En la figura 1, se muestra un ejemplo de un interruptor de activación para habilitar y, luego, inhabilitar la función NFC seguro en la app de Configuración en Configuración > Dispositivos conectados > Preferencias de conexión > NFC > Requerir desbloqueo del dispositivo para NFC.
Figura 1: Ejemplo de interruptor para habilitar y inhabilitar el método NFC seguro
Cuando la función Proteger NFC está habilitada y un usuario coloca el dispositivo en un lector de NFC, Android muestra la notificación Desbloquea para usar NFC en la pantalla de bloqueo, como se muestra en la Figura 2.
Figura 2: Notificación de desbloqueo para usar NFC en la pantalla de bloqueo
Validación
Para validar tu implementación, habilita la función Proteger NFC y verifica que la emulación de la tarjeta NFC esté inhabilitada cuando la pantalla del dispositivo esté apagada o bloqueada, y cuando el dispositivo esté apagado.