任何屏幕截图(Android Root,如截图UX)

时间:2013-07-24 20:48:19

标签: android screenshot

我的代码全部完成了,我尝试了几个代码来截取屏幕截图,但它们都不适用于我。有些只是在我的活动布局上工作,但我不希望这样,我想截取我的设备中的任何屏幕截图,比如在屏幕截图UX https://play.google.com/store/apps/details?id=com.liveov.shotuxtrial中,我知道这只能用root来完成访问。我听说过screencapdev/graphics/fb0这样的方法,但我知道“screencap”方法在我的设备(2.3.7)中不起作用,我不知道仍然非常了解如何使用dev/graphics/fb0方法...我仍然尝试使用librarys方法,但不是以成功的方式。希望有人可以帮助我获取我的截图代码。抱歉我的英文不好

2 个答案:

答案 0 :(得分:0)

对帧缓冲区的访问受权限限制。 如果你运行

$ ls -l /dev/graphics   

你可以验证

crw-rw---- root     graphics  29,   0 2013-07-10 10:21 fb0
crw-rw---- root     graphics  29,   1 2013-07-10 10:21 fb1
crw-rw---- root     graphics  29,   2 2013-07-10 10:21 fb2
crw-rw---- root     graphics  29,   3 2013-07-10 10:21 fb3
crw-rw---- root     graphics  29,   4 2013-07-10 10:21 fb4

访问权限(rw)仅授予root:graphics,因此您必须以设备为根。

答案 1 :(得分:0)

以下是在root设备上通过shell命令拍摄屏幕截图的代码'fileDestination'是您希望保存屏幕截图文件的位置的路径。

try {
    Process process = Runtime.getRuntime().exec("su", null,null);

    OutputStream os = process.getOutputStream();
    os.write(("/system/bin/screencap -p " + fileDestination).getBytes("ASCII"));
    os.flush();
    os.close();
    process.waitFor();
} catch (IOException e) {
    Log.d(TAG,LOG_LABEL+" IOException e:: SCREENSHOT FAILED");
    e.printStackTrace();
} catch (InterruptedException e) {
    Log.d(TAG,LOG_LABEL+"InterruptedException e:: SCREENSHOT FAILED");
    e.printStackTrace();
}