1

我正在开发一个应用程序,需要制作从设备屏幕的当前内容拍摄快照的 Activity。注意:我不想从我的活动内容或某些视图中拍照,我想从所有设备屏幕内容中拍照。(如主屏幕或前台的每个应用程序)。我用谷歌搜索了很多次,搜索了很多。

有一个示例代码:

View screen = (View)findViewById(R.id.screen);
screen.setDrawingCacheEnabled(true);
bmScreen = screen.getDrawingCache();
showBitmap(bmScreen); // function that show my bitmap image 

使用此代码可以捕获我的活动视图,但我不想仅捕获我的活动。我想创建一个线程来捕获设备屏幕及其所有内容。大家可以帮帮我吗?

4

1 回答 1

1

您不能这样做,主要是出于安全原因。如果这是可能的,一些流氓应用程序可以静默捕获并发送您在设备上所做的一切的屏幕截图。

为什么这对非系统应用程序不可用:

Android 让 SDK 应用程序做某些事情,并明确禁止其他事情。一个应用程序不应该读取另一个应用程序的数据,同样一个应用程序不能捕获另一个应用程序的屏幕。谷歌明确表示,第三方应用程序不应截取其他应用程序的屏幕截图。缺少屏幕捕获 API 是一个深思熟虑的决定,而不是遗漏。ICS 提供屏幕截图功能,但它是由系统实现的,并且需要硬件触发以确保它不能被第三方应用程序启动或访问。

虽然有很多方法可以做到这一点,但它们要么需要 root(直接读取图形缓冲区,这取决于设备),要么不能保证适用于所有设备/版本。

于 2012-06-11T08:40:16.830 回答