Скриншот Android - Как? - PullRequest
       7

Скриншот Android - Как?

3 голосов
/ 26 сентября 2011

Есть ли удобный способ получить доступ к скриншоту устройства Android? программно. Я ищу 15-20 кадров в секунду.

Я нашел один код android\generic\frameworks\base\services\surfaceflinger\tests\screencap\scr eencap.cpp, я построил исполняемый файл и поместил его в / data и изменил режим 777

, но когда я пытался выполнить его с помощью оболочки adb, выдает ошибку ниже.

# chmod 777 test-screencap 
chmod 777 test-screencap 
# ./test-screencap test 
./test-screencap test 
screen capture failed: Function not implemented 

Я также знаю, что мы можем получить доступ к fb0, но это не правильный метод, как предлагалось по команде Android. Можно ли получить доступ к снимку экрана в рамках слой. Я считаю, что поверхность флинджер составляет отдельные слои и дает его framebuffer. Где именно это сделано? Может ли приложение иметь доступ к такие коды.

Есть также несколько java-приложений, которые используют ddms для захвата данные фреймбуфера без корневого доступа. Но fps действительно плохой.

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

Ответы [ 2 ]

1 голос
/ 27 сентября 2011

То, что вы пытаетесь сделать, невозможно, если у вас нет рутированного телефона, есть приложение, которое делает то, что вы пытаетесь, Screenshot ER . Последние OEM-производители помещают его в свои / system / apps сейчас ... так что вы можете использовать их приложения, ознакомьтесь с этой статьей для устройств, которые включили эту функцию. Кроме этого, вы действительно застряли, но есть последствия с включенными снимками экрана, поскольку это может привести к тому, что приложения сохранят снимки экрана и отправят эту информацию, включив приложения вирусного типа ...

Информация для других ..... Через Eclipse вы можете получить снимок экрана, используя перспективу DDMS. Если вы посмотрите на кодовую базу Eclipse DDMS, то на самом деле это тоже отдельное приложение. Тогда вы сможете использовать этот код Java.

AdbHelper.getFrameBuffer(AndroidDebugBridge.getSocketAddress(), this);
0 голосов
/ 20 сентября 2012

Взгляните на droid VNC Server Это проект с открытым исходным кодом, с помощью которого вы можете клонировать исходный код на свой частный ПК.(http://github.com/oNaiPs/droid-VNC-server). Я изучаю, как может работать VNC, но это действительно сложно сделать.

Чтение содержимого фреймбуфера также является хорошим решением. Но оно работает только с android <3.только х. Я не знаю, как это исправить, чтобы работать на Android 4.x. Если вы знаете, как (после того, как см. мое предложение), пожалуйста, поделитесь им здесь. Благодаря моим исследованиям, я вижу, что есть много людей, которые ищутэто. </p>

Надеюсь, это поможет. nguyenminhbinh1602@gmail.com. Фрилансер Android.

...