我想为Android实现某种远程协助工具(如vnc)。是否有可能在设备上以编程方式捕获屏幕?
答案 0 :(得分:17)
这样的事可能适合你:
View v = view.getRootView();
v.setDrawingCacheEnabled(true);
Bitmap b = v.getDrawingCache();
答案 1 :(得分:12)
在android-developers上对此进行了长时间的讨论,但简短的回答是:您不能以编程方式截取Android设备的屏幕截图,除非
答案 2 :(得分:7)
您可以尝试以下库: http://code.google.com/p/android-screenshot-library/ Android截图库(ASL)支持以编程方式从Android设备捕获屏幕截图,而无需具有root访问权限。相反,ASL利用在后台运行的本机服务,每次设备启动时通过Android调试桥(ADB)启动。
答案 3 :(得分:3)
我认为在kitkat中使用adb命令进行屏幕捕获是可能的。 您可以使用此命令将屏幕录制为视频
adb shell screenrecord /sdcard/demo.mp4
您可以找到更多详情here
您可以从应用中执行adb命令。 检查答案here
答案 4 :(得分:1)
把它放在onClick ..
Bitmap bitmap = takeScreenshot();
saveBitmap(bitmap);
并写函数..
public Bitmap takeScreenshot() {
View rootView = findViewById(android.R.id.content).getRootView();
rootView.setDrawingCacheEnabled(true);
return rootView.getDrawingCache();
}
public void saveBitmap(Bitmap bitmap) {
File imagePath = new File(Environment.getExternalStorageDirectory() + "/screenshot.png");
FileOutputStream fos;
try {
fos = new FileOutputStream(imagePath);
bitmap.compress(CompressFormat.PNG, 100, fos);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
Log.e("GREC", e.getMessage(), e);
} catch (IOException e) {
Log.e("GREC", e.getMessage(), e);
}
}
答案 5 :(得分:0)
对于“SOME”Android设备(主要是三星),确实存在VNC类型的遥控器:
TeamViewer QuickSupport
https://play.google.com/store/apps/details?id=com.teamviewer.quicksupport.market
任何人都知道该工具如何获取屏幕截图,以及为什么它只支持有限的一组设备?