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