¿Cómo realizar una captura de pantalla de otra aplicación mediante programación sin permiso de root, como Screenshot UX Trial?

¿Cómo realizar una captura de pantalla de otra aplicación mediante programación sin permiso de root, como Screenshot UX Trial?

Sé que puedo capturar el mapa de bits de la vista raíz en mi aplicación. Pero no puedo obtener la vista raíz de la otra aplicación cuando mi aplicación se ejecuta en segundo plano

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

Hay un permiso para capturar el buffer de cuadros actual en Manifest:android.permission.READ_FRAME_BUFFER. Pero algunos sitios web dicen que es solo para la aplicación de firmas.

Comprobar permisos de Android - Niveles de protección

Después de probar Screenshot UX Trial, leí el permiso:

INTERNET: para conectarse al servidor de captura de pantalla localhost para el teléfono rooteado.SYSTEM_ALERT_WINDOW: para el botón de cámara más alto.VIBRAR: para vibración de realimentación.WRITE_EXTERNAL_STORAGE: para guardar la captura de pantalla.GET_TASKS: para detectar la actividad de configuración de desarrollo de primer plano para el método de captura no rooteado y no precargado.

Parece que tampocoSYSTEM_ALERT_WINDOW oGET_TASKS Permitir que la aplicación tome una captura de pantalla. Tengo dos conjeturas de cómo funciona:

Puede ser capaz de acceder a laActivity de la actividad de primer plano, obtiene la vista raíz de laActivity, captura su captura de pantalla.Vocaciónglreadpixels

Si intenta una de mis suposiciones, por favor hágame saber el resultado.