0

我按下按钮并程序获取 SU,但 png 文件的重量为 0 字节。Logcat 说

权限被拒绝:无法读取帧缓冲区 pid=12844 uid=10087。

那为什么会这样。我的手机已经root了,程序已经得到了su。怎么了?

Button btn = (Button) findViewById(R.id.button1);
        btn.setOnClickListener (new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                try {
                    Process process = Runtime.getRuntime().exec("su");
                    Process pr = Runtime.getRuntime().exec("/system/bin/screencap -p /sdcard/s.png");
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });
4

2 回答 2

2

你应该使用这个,它应该有更好的支持:

@Override
public void onCLick(View v)
 try{
    Process process = Runtime.getRuntime().exec("su");
    DataOutputStream os = new DataOutputStream(process.getOutputStream());

    os.writeBytes("/system/bin/screencap -p /sdcard/s.png\n");
    os.writeBytes("exit\n");
    os.flush();
    os.close();

    process.waitFor();
 } catch (Exception e){
 };
};
于 2013-03-16T22:33:17.460 回答
0

试试这个:

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            try {
                Runtime.getRuntime().exec("su -c /system/bin/screencap -p /sdcard/s.png");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });
于 2013-03-16T22:11:41.517 回答