Androidアプリからスクリーンショットを取るには、JNIとかでフレームバッファを直接見に行くしかないのかと思っていたのですが、Android4.0から/system/bin/screencapでスクリーンショットが可能になったとのことです。
root化は必要なものの、ずいぶん楽になったようですね。
try {
final String SAVE_DIR = "/test/";
String fileName = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()) + ".png";
String fullpath = Environment.getExternalStorageDirectory().getPath() + SAVE_DIR + fileName;
Process p = Runtime.getRuntime().exec("su");
OutputStream os = p.getOutputStream();
os.write(("/system/bin/screencap -p " + fullpath).getBytes("ASCII"));
os.flush();
os.close();
p.waitFor();
p.destroy();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
これ終わったらちゃんとdestroy()で開放してあげないと、色々と後で死にそうですね。
0 コメント:
コメントを投稿