【发布时间】:2013-01-09 16:46:46
【问题描述】:
我们需要找到一种在不使用任何外部软件的情况下捕获 Android 屏幕的方法,该方法可以在非 root 手机上运行。
我的研究表明没有办法做到这一点。无论如何,您应该拥有 root 权限,才能捕获设备的屏幕。
然而,进一步的研究表明,有一种方法可以让有限数量的设备做到这一点,而无需拥有 root 权限。作为证明,我可以在 Android 市场上推出以下应用程序:Screenshot UX。
它声称,该应用不需要root权限即可在以下设备上捕获屏幕:
- 银河系列(S,S2,...)
- HTC 手机(Sensation,...)
- 摩托罗拉(Atrix,...)。
- LG Optimus 系列(G2X,...)
有人说,Tegra 设备也支持这一点。
谁能指出一些文档,至少在特定设备上,这样我们至少可以支持 HTC 手机。
编辑:现在我们正在尝试使用“/system/bin/screencap”,但在模拟器上没有成功。 是否可以在某些设备上截屏仅意味着它们允许使用“/system/bin/screencap”或直接从 /dev/graphics/fb0 读取?
或者他们提供了一些用于截屏的 API?
谢谢。
【问题讨论】:
-
其中一些设备具有系统或图形供应商留下的不安全命令行工具,可在 Google 的原始原始帧缓冲方法与硬件不兼容且其较新方法尚不兼容的情况下启用 DDMS 屏幕截图实施的。这样的工具可能会因名称或组所有权和粘性位而脱颖而出;但如果它在此类安全参数中不特殊,则可能表示您可以从自己的代码中进行逆向工程和利用的未记录且不安全的 API。
-
那么我们可以测试它吗?我的意思是一些示例、指南等。我们在列表中有一些设备,我们可以在这些设备上运行测试。
-
如果您没有能力进行自己的调查,那么您不应该尝试基于临时的、特定于设备的怪异的业务领域。即使您是,这也是一个非常不稳定的想法,因为这些手机将过时并在市场上被更好地锁定的手机取代,或者至少有不同的错误,您必须识别和利用。
-
克里斯,你能回答一下编辑过的版本吗?我们了解,为该设备编写应用程序的风险,我们也了解,该设备中提供的功能可能会被锁定或给产品带来很多错误。然而,我们需要这样做。在这个问题中,我已经写了做了什么调查,所以我认为我们有能力进行自己的调查。
-
您需要自己调查我为感兴趣的每个设备描述的可能性,因为这完全是关于不同硬件版本的独特方法,可能其中没有一个与模拟器充分匹配。如果您打算在 Android 开发的“不推荐”领域进行操作,您需要准备好自己查看设备的详细程度,而不是期望在网上找到答案。