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
) foram concedidas a aplicativos que tinham assinatura ou permissões privilegiadas. Isso permitiu atividades contínuas de captura de buffer de tela, como tirar 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 aplicativos privilegiados. O acesso sem o consentimento do usuário é restrito e concedido apenas a aplicativos que possuem permissões de assinatura. Os fabricantes de dispositivos que executam aplicativos 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, seu aplicativo 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. Migre todos os aplicativos privilegiados afetados (conforme encontrados em sua pesquisa) para a classe MediaProjectionManager , que permite que qualquer aplicativo de terceiros capture buffers de tela sem permissões, mas com o consentimento do usuário. Este fluxo exibe uma caixa de diálogo que solicita ao usuário que permita a captura de tela quando um aplicativo 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 do Google Cast .
- Fornece mais informações sobre a confidencialidade dos dados que podem ser acessados.
- Impede que os usuários ocultem a caixa de diálogo em iniciações futuras: a caixa de diálogo é exibida sempre.