在Android应用程序中不知道用户的屏幕截图
问题描述:
有没有一种方法可以在用户使用应用程序时拍摄我的android应用程序的屏幕截图,并在不知道用户的情况下将这些屏幕截图发送到服务器。应该在特定的时间间隔拍摄屏幕截图。在Android应用程序中不知道用户的屏幕截图
请给出一些实现的想法。
答
假设在该特定屏幕中存在ImageView或TextView或某个其他视图,如按钮等。然后,你会做这样的:
View v=img.getRootView(); //img is ImageView. you replace it with your view
v.setDrawingCacheEnabled(true);
Bitmap bmp= v.getDrawingCache();
你要位图转换为byte[]
并将其发送到服务器。
答
使用下面的代码,你可以能够采取截屏:
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是通过我们需要包括在屏幕中的视图。
据我记忆,在非根目录的设备上采取screenshotsis并非易事,因为只有“特殊”应用才有权采取截图(由制造商签名)。这是一个安全问题(你的电脑上的android =键盘记录器中的screenlogger)。 有一点需要看一下:自从我上次尝试它以来已经有一段时间了,但我认为你必须使用本地库。 – Sprigg 2012-04-03 06:26:09