Google se compromete a promover la equidad racial para las comunidades negras. Ver cómo.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Bloquear pantalla

La implementación predeterminada de AOSP de la pantalla de bloqueo con posibilidades de desbloquearla (protección de teclado) aparece solo en la pantalla principal. En Android 9 (y versiones anteriores), las pantallas secundarias admitían una única ventana de bloqueo en una sola pantalla externa. En Android 10, la pantalla de bloqueo se expande a todas las pantallas secundarias públicas. La pantalla de bloqueo sigue siendo simple y no admite el desbloqueo desde pantallas secundarias.

Figura 1. Pantalla de bloqueo en pantalla secundaria

Los fabricantes de dispositivos pueden implementar su pantalla de bloqueo para pantallas secundarias, siempre que se cumpla el requisito de seguridad fundamental. Cuando el dispositivo está bloqueado, la información debe ocultarse de forma segura en todas las pantallas. No hay una política integrada o control sobre qué contenido debe mostrarse u ocultarse cuando el dispositivo está bloqueado. Por lo tanto, la única forma segura de implementar el acceso restringido es ocultar todo el contenido detrás de la pantalla de bloqueo y el bloqueo de ventanas. Las únicas excepciones son las aplicaciones que han optado explícitamente por mostrarse en la parte superior de la pantalla de bloqueo utilizando los R.attr.showWhenLocked o Activity.setShowWhenLocked() . De lo contrario, existe un gran potencial para filtrar información de pantallas públicas y privadas.

Si bien las pantallas se pueden colocar en diferentes estados ( ON / OFF ), el estado bloqueado es global para todas las pantallas. Como con cualquier implementación de dispositivo, debería ser obvio para un usuario cuando un dispositivo está bloqueado (o desbloqueado). Por ejemplo, presionar un botón de encendido generalmente bloquea un dispositivo móvil. Un botón de encendido también debe bloquear todas las pantallas internas y externas.

Debido a que la ventana de bloqueo es propiedad de SystemUI, no se colocará en pantallas privadas. Los propietarios de las pantallas privadas son responsables de ocultar las ventanas y proteger el contenido cuando un dispositivo está bloqueado. La implementación predeterminada del sistema solo oculta actividades en pantallas privadas al cambiar la visibilidad.

Implementación

La ventana de bloqueo en pantallas secundarias se implementa como una ventana de Presentación en KeyguardDisplayManager . Android 10 cambió KeyguardDisplayManager#mPresentations a una matriz que contiene todas las ventanas de bloqueo para todas las pantallas secundarias. KeyguardDisplayManager también tiene un escucha de cambio de pantalla para responder a los cambios en las pantallas disponibles y asegurar todas las pantallas. Es importante bloquear de inmediato todas las pantallas conectadas en cualquier momento para que los atacantes no puedan extraer los datos del usuario incluso con acceso físico al dispositivo.

La ventana de bloqueo se muestra en todas las pantallas secundarias públicas (consulte KeyguardDisplayManager#isKeyguardShowable() ). Los propietarios de pantallas privadas son responsables de asegurar el contenido cuando un dispositivo está bloqueado.