Захват экрана Android на корневом устройстве

Снимок экрана на корневом устройстве Я хочу сделать снимок экрана устройства Android с корневым доступом с помощью APK. Я пытался

process = Runtime.getRuntime().exec("/system/bin/screencap -p " + path + ”/file.png ”);

Эта команда работает нормально, но слишком медленно. Затем я попытался использовать второй вариант

View content = findViewById(android.R.id.content).getRootView();
content.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(content.getDrawingCache());
OutputStream fout = null;
File imageFile = new File(_path,"ScreenImage.png");
try {
    fout = new FileOutputStream(imageFile);
    bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fout);
    fout.flush();
    fout.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

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

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


person Tarkik    schedule 18.07.2013    source источник
comment
Этот код внутри Activity или Service?   -  person Jai Kumar    schedule 18.07.2013


Ответы (2)


Поскольку ваше устройство рутировано, взгляните на метод скриншота framework hide API SurfaceControl. Не проверял, достаточно ли быстро.

public static Bitmap screenshot(int width, int height) {
    // TODO: should take the display as a parameter
    IBinder displayToken = SurfaceControl.getBuiltInDisplay(
            SurfaceControl.BUILT_IN_DISPLAY_ID_MAIN);
    return nativeScreenshot(displayToken, width, height, 0, 0, true);
}

Обычным шагом для создания снимка экрана является перехват комбинированной клавиши снимка экрана в PhoneWindowManager, затем подключение к службе снимка экрана в systemui, эта служба вызовет метод SurfaceControl.screenshot для создания снимка экрана.

person alijandro    schedule 20.12.2014

Взгляните на эти статьи:

http://android-chirag.blogspot.com.br/2012/06/video-recording-example-in-android.html

http://android-er.blogspot.com.br/2011/04/simple-exercise-of-video-capture-using.html

person Community    schedule 18.07.2013
comment
Я хочу записать экран телефона, не используя камеру - person Tarkik; 18.07.2013