获取后台任何活动的屏幕截图(不是root)

时间:2015-02-02 15:04:46

标签: android screenshot

我正在为客户审核应用程序做一些研究,想知道是否有办法在没有设备生根的情况下,在后台从服务中获取快照?

它应该能够拍摄前景中任何活动的快照。是否有任何编程方式可以做到这一点?

1 个答案:

答案 0 :(得分:0)

下面的内容应该有效:

View rootView = MainActivity.this.getWindow().getDecorView().getRootView();
rootView.setDrawingCacheEnabled(true);      
rootView.measure(MeasureSpec.makeMeasureSpec(this.screenWidth/*specify the width here*/, MeasureSpec.EXACTLY), 
MeasureSpec.makeMeasureSpec(this.screenHeight/*specify the height here*/, MeasureSpec.EXACTLY));
rootView.layout(0, 0, rootView.getMeasuredWidth(), rootView.getMeasuredHeight()); 
rootView.buildDrawingCache(false);
Bitmap bmScreen = Bitmap.createBitmap(rootView.getDrawingCache());

此代码要求活动位于内存和前台。如果没有超级用户访问权限且无需修改Android的源代码,您就无法截取屏幕截图。我也研究了很多,这是我能想到的最好的。最后,我们最终拍摄了Activity的关卡截图。但是,如果您打开了root访问权限,here就是如何执行此操作的链接。