Cómo compilar navegadores para el SO Android Automotive

Más allá de los requisitos que se describen en Cómo compilar apps para usar en el SO Android Automotive con el vehículo estacionado, hay algunos requisitos adicionales específicos de los navegadores que se detallan en esta página.

Cómo permitir que los usuarios bloqueen el acceso a datos sensibles

A diferencia de muchos dispositivos Android, los vehículos con SO Android Automotive suelen ser dispositivos compartidos. Para brindarles a los usuarios la posibilidad de proteger sus datos sensibles, como contraseñas e información de pago, los navegadores compilados para el SO Android Automotive no deben guardar ni permitir el acceso a las contraseñas ni a la información de pago, a menos que los usuarios puedan bloquear el acceso a las contraseñas con un bloqueo de perfil La autenticación se puede realizar con la credencial del dispositivo o a través de la compilación de un sistema de autenticación dentro de tu app.

Además, antes de sincronizar datos sensibles, los navegadores compilados para el SO Android Automotive deben solicitar al usuario que se autentique y proporcionar mensajes que le informen que sus datos se están sincronizando con el vehículo. Si el usuario no tiene configurado ningún método de autenticación, puedes solicitarle que establezca uno cuando intente sincronizar datos sensibles, ya sea usando la credencial del dispositivo o una específica para tu app.

Cómo usar la credencial del dispositivo para la autenticación

En esta sección, se proporciona orientación para usar las credenciales del dispositivo y las APIs de autenticación del sistema para cumplir con los requisitos de datos sensibles descritos antes.

Cómo comprobar si hay una credencial del dispositivo establecida

Para determinar si el usuario protegió su dispositivo con un PIN, un patrón o una contraseña, puedes usar el método KeyguardManager::isDeviceSecure.

Kotlin

val keyguardManager = context.getSystemService(KeyguardManager::class.java)
val isDeviceSecure = keyguardManager.isDeviceSecure()

Java

KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
boolean isDeviceSecure = keyguardManager.isDeviceSecure();

Abre la configuración de la pantalla de bloqueo

Para reducir las dificultades de los usuarios en el caso de que necesiten establecer una credencial del dispositivo, puedes abrir la pantalla de Seguridad de la app de Configuración con la acción de intent Settings.ACTION_SECURITY_SETTINGS.

Kotlin

context.startActivity(Intent(Settings.ACTION_SECURITY_SETTINGS))

Java

context.startActivity(new Intent(Settings.ACTION_SECURITY_SETTINGS))

Solicita al usuario que se autentique

Para pedirle al usuario que se autentique, puedes usar la API de BiometricPrompt como se describe en el artículo Muestra un diálogo de autenticación biométrica.