Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmatic screencapture on mobile device

I would like to implement some sort of remote assistance tool (like vnc) for Android. Is there the possibility to capture a screen programmatically on the device?

like image 218
wolfgang Avatar asked Aug 27 '10 08:08

wolfgang


4 Answers

Something like that might work for you:

View v = view.getRootView();
v.setDrawingCacheEnabled(true);
Bitmap b = v.getDrawingCache();
like image 111
DonGru Avatar answered Nov 16 '22 03:11

DonGru


There is a long discussion of this on android-developers, but the short answer is: You can't programatically take a screenshot of an android device's screen at the moment, unless

  1. You have root access on that phone, or
  2. Your application is a system application

The Android Manifest permission READ_FRAME_BUFFER exists (see the api docs here), but can presently only be used by system applications. There are various reasons for this, one being that it is a security risk. If an background can take a screenshot of the phone's screen at any time, then people could use OCR techniques to sniff user's passwords as they were typed in, among other private information.

So no, a VNC application is not possible at the moment without root. To take a screenshot from your computer (while the phone is plugged in via usb) you can use DDMS.

like image 35
aaronsnoswell Avatar answered Nov 16 '22 05:11

aaronsnoswell


You can try the following library: http://code.google.com/p/android-screenshot-library/ Android Screenshot Library (ASL) enables to programmatically capture screenshots from Android devices without requirement of having root access privileges. Instead, ASL utilizes a native service running in the background, started via the Android Debug Bridge (ADB) once per device boot.

like image 7
Kuba Avatar answered Nov 16 '22 05:11

Kuba


I think its possible in kitkat using the adb command for screen capture. You can use this command to record screen as a video

adb shell screenrecord /sdcard/demo.mp4

You can find more details here

you can execute the adb command from your app. Check the answer here

like image 3
Sagar V. Avatar answered Nov 16 '22 03:11

Sagar V.