Я использую эмулятор.Так что определенно у меня есть разрешение root.Я использую команду:
adb pull /dev/graphics/fb0 d:/a
, а затем использую мою программу для чтения этого файла и генерирования bmp.Это успешно.Но когда я использую чистый код Java для этого:
Process process = Runtime.getRuntime().exec("su -c cat /dev/graphics/fb0");
process.waitFor();
InputStream is = process.getInputStream();
is.read(buffer, 0, width*height*2);
Буфер не может получить правильные данные.Все данные равны 0, в то время как правильное значение равно 0xFF в первых нескольких строках.
Затем я попытался:
adb shell
cat /dev/graphics/fb0 > /sdcard/tmp
Файл TMP также получил правильные данные.Почему чистый код Java потерпел неудачу?Я неправильно использовал класс Process?