-1

我已经完成了我的代码,并且我尝试了几个代码来截取屏幕截图,但它们都不适合我。有些只是在我的活动布局上工作,但我不希望这样,我想在我的设备中的任何屏幕上截屏,比如 Screenshot UX https://play.google.com/store/apps/details?id=com.liveov.shotuxtrial,我知道这只能通过 root 访问来完成。我听说过 and 之类的方法screencapdev/graphics/fb0但我知道 " screencap" 方法在我的设备 (2.3.7) 中不起作用,我仍然不太了解如何使用该dev/graphics/fb0方法......我仍然尝试了库方法,但没有成功。希望有人可以帮助我获取我的屏幕截图代码。对不起,我的英语不好

4

2 回答 2

0

以下是通过 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();
}
于 2013-09-20T12:08:03.223 回答
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

access ( rw) 仅授予root:graphics,因此您必须 root 设备。

于 2013-07-24T21:37:08.797 回答