XXX
XXX

Reputation: 9072

Screenshot from background service of another application (programmatically)

When I use the browser I want to save screenshots of the site that I visited. Because some pages disappear in the future. So I decided to do a background service that would make the screenshots at regular intervals of time when I visit the site say www.site.com. Who can give me any tips, links to tutorials, examples, ...?

P.S. My phone is rooted. Android 2.1. and do not say that it is impossible :)

UPDATE:

Screenshots in JPG format or HTML without a difference. The method which is easier to make.

Upvotes: 7

Views: 20763

Answers (2)

Viswanath Lekshmanan
Viswanath Lekshmanan

Reputation: 10083

 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();

Upvotes: 11

IWillNotChange
IWillNotChange

Reputation: 54

Worst case scenario you can use android SDK while plugged in via USB and take screen shots.

Upvotes: 2

Related Questions