Программный скриншот веб-просмотра с элементами flash

Мой вопрос похож на этот вопрос, заданный несколько лет назад, но на вопрос так и не ответили, и я хотел бы узнать, изменилось ли что-нибудь с тех пор, как его спросили.

Я хотел бы программно сделать снимок экрана веб-просмотра с элементами flash. Когда я пытаюсь использовать методы, которые наиболее широко описаны в Интернете (используя view.draw и view.getDrawingCache), элементы флэш-памяти не захватываются. Я считаю, что это связано с программным и аппаратным рендерингом элементов. Пожалуйста, дайте мне знать, если я ошибаюсь.

На самом деле мне не нужно делать это в окончательном приложении, только во время разработки, поэтому я был бы открыт для некоторых взломов adb, но приложение должно иметь возможность запускать снимок экрана.

Я был бы очень признателен за любые идеи.

Спасибо


person Bi Rico    schedule 07.04.2015    source источник
comment
Возможно, этот комментарий может вам помочь: stackoverflow.com/a/9805831/4336354   -  person No More Hello World    schedule 10.04.2015
comment
Вы хотите сделать это только для себя или хотите и для пользователей?   -  person Bojan Kseneman    schedule 17.04.2015


Ответы (3)


У вас есть root-права? Если да - вы можете напрямую прочитать графический буфер, обратившись к нему через /dev/graphics/fb0.

Здесь обсуждается, как это сделать через адб.

Вот пост, как это сделать это программно (вам нужно будет обернуть код слоем JNI)

person user2551017    schedule 13.04.2015

Я не пробовал этот подход, но теоретически вы не можете использовать отражение, чтобы получить дескриптор

com.android.systemui.screenshot.GlobalScreenshot

void takeScreenshot(Runnable finisher, boolean statusBarVisible, boolean navBarVisible)

для просмотра этого кода http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.0.0_r1/com/android/systemui/screenshot/GlobalScreenshot.java#GlobalScreenshot.takeScreenshot%28java.lang.Runnable%2Cboolean%2Cboolean%29

person ichthyocentaurs    schedule 16.04.2015

следующие строки должны работать для вас :)

browser.setDrawingCacheEnabled(true);
   browser.buildDrawingCache();
   Bitmap bitmap = browser.getDrawingCache();
person Community    schedule 07.04.2015
comment
Ага, это то, что у меня есть. Статические части веб-страницы захватываются, флэш-часть — просто черный квадрат. - person Bi Rico; 07.04.2015