Me gustaría implementar algún tipo de herramienta de asistencia remota (como vnc) para Android. ¿Existe la posibilidad de capturar una pantalla mediante programación en el dispositivo?Captura de pantalla programática en dispositivo móvil
Respuesta
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 android-developers, pero la respuesta corta es: No se puede programáticamente realizar una captura de pantalla de un dispositivo Android en el momento, a menos que
- Usted tiene acceso root en ese teléfono, o
- Su aplicación es una aplicación de sistema
El permiso de manifiesto de Android READ_FRAME_BUFFER existe (consulte los documentos de la API here), 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.
Así que 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.
Según lo que ha dicho aquí, parece que una aplicación del sistema podría instalarse mediante recuperación sin stock y no necesariamente necesita la ROM ser enraizado No he oído hablar de ninguna aplicación del sistema VNC, incluso 1.75 años después de haber publicado esta respuesta. Hay muchos usuarios de ROM personalizados y parece que hay un gran vacío esperando a que alguien venga con una buena aplicación de VNC. –
Con respecto al punto 2: debe ser más que una aplicación de sistema (es decir, en la carpeta del sistema), debe estar firmado por la clave del sistema operativo, que es mucho más restrictiva. Esta es la diferencia entre un permiso que es "signatureOrSystem" y "signature". –
Usted puede probar la siguiente librería: http://code.google.com/p/android-screenshot-library/ Android pantalla Biblioteca (ASL) permite capturar imágenes mediante programación de los dispositivos Android sin requisito de tener privilegios de acceso raíz. En cambio, ASL utiliza un servicio nativo que se ejecuta en segundo plano, iniciado a través del Android Debug Bridge (ADB) una vez por cada inicio del dispositivo.
Su respuesta es muy útil para mí, pero cuando uso esta biblioteca, me sigue mostrando un brindis diciendo "Servicio nativo no encontrado". ¿Has encontrado un problema así? Por favor ayúdame. Gracias –
"Servicio nativo no encontrado" para mí ... ¿Qué me falta aquí? –
Creo que es posible en kitkat usando el comando adb para captura de pantalla. Puede utilizar este comando para pantalla de registro como un video
adb shell screenrecord /sdcard/demo.mp4
Puede encontrar más detalles here
puede ejecutar el comando adb de su aplicación. Verifica el resultado here
No. Después de ejecutar: 'screenrecord --verbose --time-limit 5 /sdcard/recvid.mp4' en el método getRuntime(). Exec() ... El proceso se ejecuta, sin embargo aparece el error: "Negación de permiso: difusión pide ejecutar como usuario -1 pero está llamando desde el usuario 0; esto requiere android.permission.INTERACt_ACROSS_USERS_FULL ... "¡Sin embargo, he podido ejecutar 'screenrecord --help' muy bien! – giannileuani
El tipo VNC tol remota existe para "algunos" dispositivos Android (principalmente Samsung):
TeamViewer QuickSupport
https://play.google.com/store/apps/details?id=com.teamviewer.quicksupport.market
Dos cualquier persona sabe que la herramienta se pone captura de pantalla y por qué solo admite un conjunto limitado de dispositivos
puso en onClick ..
Bitmap bitmap = takeScreenshot();
saveBitmap(bitmap);
y escribir funtcion ..
public Bitmap takeScreenshot() {
View rootView = findViewById(android.R.id.content).getRootView();
rootView.setDrawingCacheEnabled(true);
return rootView.getDrawingCache();
}
public void saveBitmap(Bitmap bitmap) {
File imagePath = new File(Environment.getExternalStorageDirectory() + "/screenshot.png");
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);
}
}
- 1. Captura de pantalla de Android en el dispositivo rooteado
- 2. Captura de pantalla de la pantalla actual
- 3. Toma de captura de pantalla de la pantalla actual del dispositivo
- 4. El dispositivo móvil se detecta como dispositivo no móvil
- 5. Tomando captura de pantalla de una pantalla de dispositivo usando C#
- 6. Captura de pantalla en android
- 7. Captura de pantalla en Haskell?
- 8. Pantalla de captura
- 9. Programemos la captura de pantalla del dispositivo iOS desde la computadora Mac conectada
- 10. Captura de pantalla de la segunda pantalla
- 11. Detección de dispositivo de navegador móvil en .NET
- 12. Detectando si hay claves disponibles en el teclado en pantalla del dispositivo móvil
- 13. Android OpenGL Captura de pantalla
- 14. HTML5 video captura de pantalla
- 15. android: captura de video en el dispositivo o emulador
- 16. Captura de impresiones de pantalla en Java
- 17. Android: ¿Cómo se puede obtener framebuffer (captura de pantalla) en un dispositivo rooteado?
- 18. habilitando arrastrar y soltar en un dispositivo móvil con pantalla táctil
- 19. Resolución del dispositivo móvil (ancho, alto) encabezado de tamaño de pantalla
- 20. Convertir URL en captura de pantalla (script)
- 21. Captura de pantalla en Python - Cross Platform
- 22. Captura UIScrollView fuera contenido de la pantalla
- 23. Dispositivo de captura de video DirectShow "Falso"
- 24. Obtener móvil no desde el dispositivo real
- 25. Identificación del dispositivo móvil usando Nmap
- 26. Teclado numérico forzado para dispositivo móvil
- 27. Superposición de pantalla para la captura de pantalla
- 28. ¿Cómo tomar una captura de pantalla de iPhone de toda la vista, incluidas las partes fuera de la pantalla?
- 29. Ir a la pantalla de inicio de forma programática
- 30. Herramienta de captura de pantalla para BlackBerry?
Gracias, esto es justo lo que necesitaba!Tuve un problema similar, pero solo quería un mapa de bits de mi aplicación, no la interfaz de usuario OS, etc. –