Como tirar uma captura de tela de outro aplicativo programaticamente sem permissão de root, como o Screenshot UX Trial?

Como tirar uma captura de tela de outro aplicativo programaticamente sem permissão de root, como o Screenshot UX Trial?

Eu sei que posso capturar o bitmap da visualização raiz no meu aplicativo. Mas não consigo ver a raiz do outro aplicativo quando meu aplicativo está sendo executado em segundo plano

bitmap = Bitmap.createBitmap(rootview.getDrawingCache());

Existe uma permissão para capturar o buffer de quadros atual no Manifest:android.permission.READ_FRAME_BUFFER. Mas algum site diz que é apenas para o aplicativo de assinatura.

Verifique as permissões do Android - níveis de proteção

Depois de tentar a avaliação do Screenshot UX, li a permissão:

INTERNET: para conectar-se ao servidor de captura de tela localhost para o telefone com root.SYSTEM_ALERT_WINDOW: para o botão mais alto da câmera.VIBRATE: para feedback de vibração.WRITE_EXTERNAL_STORAGE: para salvar a captura de tela.GET_TASKS: para detectar o primeiro plano Atividade de configuração de desenvolvimento para método de captura não enraizado e não pré-carregado.

Parece queSYSTEM_ALERT_WINDOW ouGET_TASKS permitir que o aplicativo tire a captura de tela. Eu tenho dois palpites de como funciona:

Pode ser capaz de acessar oActivity da atividade de primeiro plano, obtém a visão da raiz doActivity, capture sua captura de tela.Chamandoglreadpixels

Se você tentar um dos meus palpites, por favor me avise o resultado.

questionAnswers(3)

yourAnswerToTheQuestion