我正在使用Nexus 5.版本5.1.1
我想在任何时候以编程方式截取手机屏幕截图。如果解决方案特定于Nexus 5,我没关系。
在阅读了很多答案之后,我使用screencap
尝试了以下解决方案。
问题是它创建了图像文件,但它是空白的。
private void takeSS() {
try {
if (isExternalStorageWritable()) {
Process su = Runtime.getRuntime().exec("/system/bin/screencap -p /storage/emulated/0/img.png\n");
DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());
outputStream.flush();
su.waitFor();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(su.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
String output = line + System.getProperty("line.separator");
System.out.println(line);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/* Checks if external storage is available for read and write */
public boolean isExternalStorageWritable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
如果从命令提示符运行,它会执行相同的命令。 请提出可能存在的问题。
P.S。 - 我的手机扎根了。
谢谢
答案 0 :(得分:0)
您是否尝试过以su?
执行命令 "/system/bin/su -c \"/system/bin/screencap -p /storage/emulated/0/img.png\""