En Android 9 y versiones anteriores, los permisos de captura de búfer de pantalla ( READ_FRAME_BUFFER
, CAPTURE_VIDEO_OUTPUT
y CAPTURE_SECURE_VIDEO_OUTPUT
) se otorgaron a las aplicaciones que tenían permisos privilegiados o de firma. Esto permitió actividades de captura de búfer de pantalla sin problemas, como tomar capturas de pantalla o grabar el contenido de la pantalla de un dispositivo.
A partir de Android 10, para evitar el acceso silencioso al contenido de la pantalla de un dispositivo, no se otorgan permisos de captura de video a aplicaciones privilegiadas. El acceso sin el consentimiento del usuario está restringido y se otorga solo a las aplicaciones que tienen permisos de firma. Los fabricantes de dispositivos que ejecutan aplicaciones privilegiadas que dependen de esta funcionalidad de captura silenciosa se ven afectados por este requisito.
A partir de Android 10, si no tiene los permisos de firma de captura de búfer de pantalla enumerados, su aplicación no puede capturar búferes de pantalla sin el consentimiento del usuario. Para asegurarse de que tiene los permisos que necesita, busque en su archivo de manifiesto los permisos de firma enumerados anteriormente. Migre todas las aplicaciones privilegiadas afectadas (como se encuentran en su búsqueda) a la clase MediaProjectionManager , que permite que cualquier aplicación de terceros capture búferes de pantalla sin permisos, pero con el consentimiento del usuario. Este flujo muestra un cuadro de diálogo que solicita al usuario que permita la captura de pantalla cuando una aplicación la inicia. En Android 10, las nuevas funciones del cuadro de diálogo incluyen lo siguiente:
- Proporciona asociaciones más visibles con el icono Cast .
- Proporciona más información sobre la confidencialidad de los datos a los que se puede acceder.
- Evita que los usuarios oculten el diálogo en futuras iniciaciones: el diálogo se muestra siempre.