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 コメント:
コメントを投稿