Android admite la emulación de tarjetas fuera del host, lo que significa que admite la emulación de tarjetas NFC con un Elemento seguro. Para obtener más información, consulta 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 el dispositivo está apagado.
Secure NFC es una función que se introdujo en Android 10 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 Proteger NFC para mejorar la seguridad.
Implementación
Para implementar la función de NFC seguro, el dispositivo debe tener un controlador NFC que sea compatible con 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 Secure NFC en el archivo XML de recursos de NFC con el atributo config_skuSupportsSecureNfc
.
APIs de Framework
Para implementar NFC seguro, implementa las siguientes APIs del framework que se encuentran en el Proyecto de código abierto de Android:
isSecureNfcSupported()
: Verifica si el dispositivo admite la función de NFC seguro.isSecureNfcEnabled()
: Verifica si la función NFC seguro está habilitada.enableSecureNfc(boolean enable)
: Habilita la función NFC seguro.
IU de configuración
En la aplicación de Configuración, agrega un interruptor para permitir a los usuarios habilitar o inhabilitar la función Proteger NFC. Puedes personalizar la configuración predeterminada en la aplicación de configuración para que esté habilitada o inhabilitada.
En la Figura 1, se muestra un ejemplo de un interruptor de activación y desactivación para habilitar y deshabilitar el NFC seguro en la app de Configuración, en Configuración > Dispositivos conectados > Preferencias de conexión > NFC > Usar NFC solo si el dispositivo está desbloqueado.
Figura 1: Ejemplo de interruptor de activación para habilitar y desactivar el método NFC seguro
Cuando se habilita la función Proteger NFC y un usuario coloca el dispositivo en un lector de NFC, Android muestra la notificación Desbloquear 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 de NFC seguro y verifica que la emulación de tarjetas NFC esté inhabilitada cuando la pantalla del dispositivo esté apagada o bloqueada, y cuando el dispositivo esté apagado.