从另一个应用程序的后台服务截图(以编程方式)

时间:2012-01-08 17:40:29

标签: android screenshot

当我使用浏览器时,我想保存我访问过的网站的屏幕截图。因为有些页面将来会消失。所以我决定做一个后台服务,当我访问网站www.site.com时,会定期制作截图。谁可以给我任何提示,教程链接,示例,......?

P.S。我的手机扎根了。 Android 2.1。并且不要说这是不可能的:))

更新

JPG格式或HTML屏幕截图没有区别。这种方法更容易制作。

2 个答案:

答案 0 :(得分:10)

 Process sh = Runtime.getRuntime().exec("su", null,null);

                        OutputStream  os = sh.getOutputStream();
                        os.write(("/system/bin/screencap -p " + "/sdcard/img.png").getBytes("ASCII"));
                        os.flush();

                        os.close();
                        sh.waitFor();

    then read img.png as bitmap and convert it jpg as follows 

Bitmap screen = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+ File.separator +"img.png");

//my code for saving
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        screen.compress(Bitmap.CompressFormat.JPEG, 15, bytes);

//you can create a new file name "test.jpg" in sdcard folder.

File f = new File(Environment.getExternalStorageDirectory()+ File.separator + "test.jpg");
                f.createNewFile();
//write the bytes in file
        FileOutputStream fo = new FileOutputStream(f);
        fo.write(bytes.toByteArray());
// remember close de FileOutput

        fo.close();

答案 1 :(得分:2)

最糟糕的情况是,您可以在通过USB插入时使用Android SDK并拍摄屏幕截图。