Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 拍摄当前屏幕的截图_Android_Screenshot - Fatal编程技术网

Android 拍摄当前屏幕的截图

Android 拍摄当前屏幕的截图,android,screenshot,Android,Screenshot,我正在Android上开发一个应用程序,它将把屏幕共享给另一个Android设备。这个应用程序将作为服务在后台运行 我想捕获屏幕(当前屏幕),将其保存为JPEG格式,并通过UDP将其发送到其他Android设备 但我的问题是如何通过捕获帧缓冲区来捕获当前屏幕 请提供帮助。您可以通过启用 setDrawingCacheEnabled(true); 这是我的看法 选中此项通过打开/dev/graphics/fb0设备访问Android帧缓冲区(以及其他linux系统)。这需要根访问权限,即使使用根

我正在Android上开发一个应用程序,它将把屏幕共享给另一个Android设备。这个应用程序将作为服务在后台运行

我想捕获屏幕(当前屏幕),将其保存为JPEG格式,并通过UDP将其发送到其他Android设备

但我的问题是如何通过捕获帧缓冲区来捕获当前屏幕


请提供帮助。

您可以通过启用

setDrawingCacheEnabled(true);
这是我的看法


选中此项

通过打开/dev/graphics/fb0设备访问Android帧缓冲区(以及其他linux系统)。这需要根访问权限,即使使用根访问权限,也无法在所有设备上正常工作。大多数设备使用一对帧缓冲区并在它们之间切换。更大的问题是,即使使用根电话,Dalvik机器的用户ID也没有访问帧缓冲区(fb0)设备的权限。这意味着您将永远无法直接从Java代码打开fb0设备并从中读取。您需要以root用户身份运行本机linux应用程序,并且它将能够访问fb0(在用户授予权限后)。我成功地做到了这一点,这是相当具有挑战性的,也不赞成谷歌。我仍然有可能将其转化为商业应用程序,但由于其局限性和不兼容性,这种可能性很低。

谢谢。但这只会给出我的应用程序视图的屏幕截图。我想捕获当我的应用程序在后台运行时屏幕上出现的任何内容。你想要后台服务的屏幕截图…我不知道…希望有人能帮助你Hi BitBank,谢谢你的回复。我使用链接访问帧缓冲区。但是当我使用相同的代码,使用一个连续的屏幕截图服务时,我就遇到了内存问题。但是,当我使用活动捕获单个屏幕时,就没有内存错误。您是否可以帮助映射和取消映射帧缓冲区内存,或者是否保留指向它的指针并多次使用它?当我使用fb0时,我可以通过保持fb0打开来持续捕获屏幕。我正在使用指向它的指针。你可以分享代码吗。我使用的程序与我pocketmagic.net/?p=1473提到的链接中提到的相同,我不想共享代码,因为我仍然可以将其用于商业应用程序。