在Android应用程序中不知道用户的屏幕截图

问题描述:

有没有一种方法可以在用户使用应用程序时拍摄我的android应用程序的屏幕截图,并在不知道用户的情况下将这些屏幕截图发送到服务器。应该在特定的时间间隔拍摄屏幕截图。在Android应用程序中不知道用户的屏幕截图

请给出一些实现的想法。

+0

据我记忆,在非根目录的设备上采取screenshotsis并非易事,因为只有“特殊”应用才有权采取截图(由制造商签名)。这是一个安全问题(你的电脑上的android =键盘记录器中的screenlogger)。 有一点需要看一下:自从我上次尝试它以来已经有一段时间了,但我认为你必须使用本地库。 – Sprigg 2012-04-03 06:26:09

假设在该特定屏幕中存在ImageView或TextView或某个其他视图,如按钮等。然后,你会做这样的:

View v=img.getRootView(); //img is ImageView. you replace it with your view 
v.setDrawingCacheEnabled(true); 
Bitmap bmp= v.getDrawingCache(); 

你要位图转换为byte[]并将其发送到服务器。

+0

这只能在代码运行的同一个应用上使用吗? – Sudar 2012-04-03 06:30:02

+0

是的。甚至hemalatha在问题中也提出了同样的问题。 (她提到“我的申请”) – 2012-04-03 06:31:56

+0

是的,你是对的。错过*我的应用*部分。 – Sudar 2012-04-03 06:39:04

使用下面的代码,你可以能够采取截屏:

View root = findViewById(android.R.id.content); 
root.setDrawingCacheEnabled(true); 
Bitmap bm = Bitmap.createBitmap(root.getDrawingCache()); 
root.setDrawingCacheEnabled(false); 

而且你可以处理这个代码按您的要求。这里bm是屏幕截图位图,您可以将该位图文件发送到适当的服务器并了解它。

享受。 :)

正如你所说,你想从你的应用程序截图,试试这个。

Bitmap bitmap; 
View v1 = MyView.getRootView(); 
v1.setDrawingCacheEnabled(true); 
bitmap = Bitmap.createBitmap(v1.getDrawingCache()); 
v1.setDrawingCacheEnabled(false); 

MyView是通过我们需要包括在屏幕中的视图。