我想截取正在手机上运行的Android应用程序的屏幕截图。
我尝试使用ScreenShot UX应用程序。这可以在未经root的手机上完成。 有没有办法从在后台运行的服务中获取Android应用程序的屏幕截图呢?
我希望我的服务定期截取屏幕并发送到服务器。
我想截取正在手机上运行的Android应用程序的屏幕截图。
我尝试使用ScreenShot UX应用程序。这可以在未经root的手机上完成。 有没有办法从在后台运行的服务中获取Android应用程序的屏幕截图呢?
我希望我的服务定期截取屏幕并发送到服务器。
如果要截取一个不属于你自己应用的应用程序的屏幕截图,唯一的方法是获取原始帧缓存。帧缓存通常位于 /dev/fb0
或 /dev/graphics/fb0
。在某些设备(如 LG Optimus One)上,可以在未获得 root 权限的情况下访问该帧缓存,但在大多数设备(如 Nexus S)上需要获取 root 权限。出于安全考虑,通常不允许这样做,因为恶意应用程序可能会在后台截屏并将其发送到远程服务器,揭示诸如电子邮件 ID 和密码以及在某些情况下银行账户信息等敏感信息。
从 Android 5.0+ 开始,您可以使用 SDK 中的新功能——媒体投影(media projections)来进行屏幕截图而无需 root 权限。Google 提供了一个可用的示例代码,点此查看。
view.setDrawingCacheEnabled(true)
)。 - mayank_droid