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