Снимок экрана из фонового сервиса другого приложения (программно) - PullRequest
7 голосов
/ 08 января 2012

Когда я использую браузер, я хочу сохранить скриншоты сайта, который я посетил.Потому что некоторые страницы исчезают в будущем.Поэтому я решил сделать фоновый сервис, который бы делал скриншоты через регулярные промежутки времени, когда я захожу на сайт www.site.com.Кто может дать мне какие-либо советы, ссылки на учебники, примеры, ...?

PS Мой телефон рутирован.Android 2.1.и не говорите, что это невозможно:)

ОБНОВЛЕНИЕ:

Снимки экрана в формате JPG или HTML без разницы.Метод, который легче сделать.

Ответы [ 2 ]

10 голосов
/ 04 марта 2013
 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();
2 голосов
/ 08 января 2012

В худшем случае вы можете использовать Android SDK при подключении через USB и делать снимки экрана.

...