私はエミュレータを使用しています。だから間違いなく私はroot権限を持っています。その後、なぜ/ dev/graphics/fb0からデータを読み取れないのですか?
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クラスを間違って使用した方法ですか?