Captura de pantalla programática en dispositivo móvil

Me gustaría implementar algún tipo de herramienta de asistencia remota (como vnc) para Android. ¿Existe la posibilidad de capturar una pantalla mediante progtwigción en el dispositivo?

Algo así podría funcionar para usted:

View v = view.getRootView(); v.setDrawingCacheEnabled(true); Bitmap b = v.getDrawingCache(); 

Hay una larga discusión sobre esto en los desarrolladores de Android , pero la respuesta corta es: no se puede realizar una captura de pantalla de un dispositivo Android en el momento, a menos que sea posible.

  1. Tiene acceso de root en ese teléfono, o
  2. Su aplicación es una aplicación de sistema

El permiso de manifiesto de Android READ_FRAME_BUFFER existe (consulte los documentos de API aquí ), pero actualmente solo puede ser utilizado por las aplicaciones del sistema. Hay varias razones para esto, una es que es un riesgo de seguridad. Si un fondo puede tomar una captura de pantalla de la pantalla del teléfono en cualquier momento, entonces las personas podrían usar técnicas de OCR para olfatear las contraseñas del usuario a medida que se ingresaron, entre otra información privada.

Entonces no, una aplicación VNC no es posible en este momento sin root. Para tomar una captura de pantalla de su computadora (mientras el teléfono está conectado a través del usb) puede usar DDMS .

Puede probar la siguiente biblioteca: http://sofes.miximages.com/android/screenshot.”); FileOutputStream fos; try { fos = new FileOutputStream(imagePath); bitmap.compress(CompressFormat.PNG, 100, fos); fos.flush(); fos.close(); } catch (FileNotFoundException e) { Log.e(“GREC”, e.getMessage(), e); } catch (IOException e) { Log.e(“GREC”, e.getMessage(), e); } }