No Android 9 e versões anteriores, as permissões de captura
de buffer de tela (READ_FRAME_BUFFER
,
CAPTURE_VIDEO_OUTPUT
e
CAPTURE_SECURE_VIDEO_OUTPUT
) eram concedidas a apps que
tinham permissões privilegiadas ou assinatura. Isso
permitiu atividades de captura de buffer de tela integradas, como
capturar capturas de tela ou gravar o conteúdo da tela de um dispositivo.
A partir do Android 10, para evitar o acesso silencioso ao conteúdo da tela de um dispositivo, as permissões de captura de vídeo não são concedidas a apps privilegiados. O acesso sem consentimento do usuário é restringido e concedido apenas a apps que têm permissões de assinatura. Os fabricantes de dispositivos que executam apps privilegiados que dependem dessa funcionalidade de captura silenciosa são afetados por esse requisito.
No Android 10 e versões mais recentes, se você não tiver as permissões de assinatura de captura de buffer de tela listadas, o app não poderá capturar buffers de tela sem o consentimento do usuário. Para garantir que você tenha as permissões necessárias, pesquise no arquivo de manifesto as permissões de assinatura listadas anteriormente. Migrar todos os apps privilegiados afetados (encontrados na sua pesquisa) para a classe MediaProjectionManager, que permite que qualquer app de terceiros capture buffers de tela sem permissões, mas com o consentimento do usuário. Esse fluxo mostra uma caixa de diálogo que solicita que o usuário permita a captura de tela quando um app a inicia. No Android 10, os novos recursos da caixa de diálogo incluem:
- Oferece associações mais visíveis com o ícone Transmitir.
- Fornece mais informações sobre a sensibilidade dos dados que podem ser acessados.
- Impedem que os usuários ocultem a caixa de diálogo em ativações futuras: ela aparece sempre.