Android: l'écriture a échoué: EPIPE (Broken pipe) Erreur lors de l'écriture du fichier

J'essayais de prendre une capture d'écran de l'écran Android par programmation. J'avais fait le code suivant:

private void getsnap(){
    try{
        Process sh = Runtime.getRuntime().exec("su", null, null);
        OutputStream os = sh.getOutputStream();
        String filePath = this.getFilesDir().getPath().toString() + "/fileName1.jpeg";
        os.write(("/system/bin/screencap -p " + filePath).getBytes("ASCII"));
        os.flush();
        os.close();
        sh.waitFor();       
    } 
    catch (Exception e) 
    {
        e.printStackTrace();
    }
}

java.io.IOException: write failed: EPIPE (Broken pipe)

Svp quelqu'un peut-il aider? J'avais déjà vérifié les autres posts et je ne trouve rien la résolution de mon problème.


EDIT:

Veuillez noter que l'Erreur se produit dans la ligne os.write().

Avez-vous avez les droits root sur votre appareil?
J'étais juste en cours d'exécution sur l'Émulateur. Et dans un des post, j'ai trouvé, je n'ai pas à avoir de la racine de l'autorisation. Peut-être que c'est faux. S'il vous plaît pouvez-vous m'aider comment obtenir à la racine de l'autorisation sur l'émulateur?
Vous essayez d'utiliser un système de commande de /system/bin. Je suppose que vous auriez besoin de permissions root à valoir sur l'émulateur. Mais vous pouvez essayer cette méthode de prendre une capture d'écran: stackoverflow.com/questions/2661536/...

OriginalL'auteur Hariprasauth Ramamoorthy | 2013-07-12