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 o consentimento do usuário é restrito 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.
A partir do Android 10, 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ê tem as permissões necessárias, pesquise no arquivo de manifesto as permissões de assinatura listadas anteriormente. Migre todos os apps privilegiados afetados (conforme encontrado 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 o seguinte:
- Fornece 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.