No se puede tomar la captura de pantalla en Android L mediante programación

Estoy usando Nexus 5. Versión 5.1.1

Quiero tomar la captura de pantalla programáticamente de teléfono en cualquier momento dado. Estoy bien si la solución es específica para Nexus 5.

Después de leer muchas respuestas, he intentado por debajo de la solución usando screencap .

El problema es que crea el archivo de imagen, pero está en blanco.

 private void takeSS() { try { if (isExternalStorageWritable()) { Process su = Runtime.getRuntime().exec("/system/bin/screencap -p /storage/emulated/0/img.png\n"); DataOutputStream outputStream = new DataOutputStream(su.getOutputStream()); outputStream.flush(); su.waitFor(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(su.getInputStream())); String line; while ((line = bufferedReader.readLine()) != null) { String output = line + System.getProperty("line.separator"); System.out.println(line); } } } catch (Exception e) { e.printStackTrace(); } } /* Checks if external storage is available for read and write */ public boolean isExternalStorageWritable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } 

El mismo comando si ejecuto desde el símbolo del sistema, se ejecuta correctamente. Por favor, sugiera cuál podría ser el problema.

PS – Mi teléfono está enraizado.

Gracias

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.