一分钟后如何在后台截取屏幕截图并将其保存在图库中,而不是我的手机?

How can i take screenshot in background after a min and save it in gallery not of my but my phone?

提问人:Meharunnisa Zahid 提问时间:11/13/2023 更新时间:11/13/2023 访问量:10

问:

Hello Stack Overflow 社区,

我正在开发一个 Android 应用程序,我需要定期捕获背景屏幕截图。我探索了两种方法:使用 MediaProjection 和使用 Canvas。但是,我面临着 MediaProjection 方法的挑战,特别是 mediaProjection 对象似乎为 null,使该方法无效。

以下是我尝试过的简要概述:

MediaProjection 方法:

我正在使用 MediaProjection API 在后台捕获屏幕截图。 从 mediaProjectionManager.getMediaProjection 获取的 mediaProjection 对象始终为 null。 测试的最低 Android 版本: API 22, 最高: 最新. Canvas 方法:

我还尝试使用 Canvas 捕获屏幕截图。 但是,我在实现过程中遇到了限制,并且不能完全满足我的要求。 一般细节:

目标是在后台捕获屏幕截图,而不仅仅是在应用程序中。 应用应作为服务或辅助角色运行,并按预定义的时间间隔截取屏幕截图。 我已经彻底审查了我的代码并尝试了各种解决方案,但问题仍然存在。考虑到我遇到的限制,我正在寻求有关如何成功实现背景屏幕截图的指导

Kotlin 背景 截图 android-mediaprojection mediaprojectionmanager

评论


答:

0赞 Droid Automations 12/2/2023 #1

您是否设置了前台服务来管理屏幕截图处理?每次运行应用时,您都需要请求用户权限,否则结果将为 ull from mediaProjection 将为 null。此外,一旦您拥有 mediaProjection 实例,并打算使用它来获取屏幕截图,您可能需要考虑克隆意图数据,如果设备运行的是 android 13,则使用克隆>以节省资源。这里有很多好的答案和建议,对我有很大帮助 使用 mediaprojectionmanager 获取屏幕截图,而另一个应用程序在前台

评论

0赞 Meharunnisa Zahid 12/7/2023
我们不能在画布中获得视图吗 我使用前台服务 我使用带有 Canvas 的窗口管理器来绘制 SS 并向其传递透明视图,但我得到的是空图片。
0赞 Community 12/7/2023
您的答案可以通过额外的支持信息得到改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。