Программно сделать скриншот из сервиса

этот код легко

Bitmap bitmap;
View v1 = MyView.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);

и это прекрасно работает, но это в том случае, если есть активность.

Как сделать скриншот из сервиса?

моя цель делать скриншоты через час, т.е. закрывать экран каждый час, например, через 12, затем через 1, затем через 2 .... и так далее


person Lukap    schedule 07.05.2012    source источник
comment
закрытие экрана очень важно!... пожалуйста, сообщите мне, если вы найдете решения   -  person Sherif elKhatib    schedule 07.05.2012
comment
вы найдете какое-либо решение для этого. Пожалуйста, дайте мне знать ... об этом   -  person Akarsh M    schedule 22.05.2013


Ответы (2)


Чтобы сделать ScreenShot для вашей активности, вам понадобится View вашей активности, а какой из них отсутствует в вашей службе, поэтому вам нужно создать TimerTask, который вызовет ваш активность каждый час и ваша активность, отвечающая на нее текущим представлением, и вы можете зафиксировать ScreenShot из этого. (Я думаю, что это единственное решение вашей проблемы.)

Или, если вы хотите сделать снимок экрана текущего экрана устройства (любого приложения), вам необходимо права суперпользователя и прочитать framebuffer для того, что даст необработанные данные текущего экрана, а затем преобразовать их в растровое изображение или любой файл изображения, который вы можете сделать в своем сервисе.

person user370305    schedule 07.05.2012
comment
привет @ user370305, не могли бы вы дать мне пример кода для чтения фреймбуфера... мне нужно срочное требование... - person kalandar; 02.03.2013
comment
@kalandar — посмотрите pocketmagic.net/2010/11/ - person user370305; 02.03.2013

Библиотека скриншотов Android (ASL) предоставляет средства для создания снимков экрана телефона без необходимости подписывания вашего приложения или наличия привилегированного (корневого) доступа к системе Android Нажмите здесь для ASL

person sandy    schedule 02.01.2013