为什么我无法使用ICS构建的应用程序屏幕截图进行截图

起初,这可能不是问这个问题的适当位置......但是由于我只用我自己的应用程序注意到了这个问题,我想没有其他地方可以提出这个问题了。 也许我做错了什么,但我不知道......

正如你可能知道的那样,ICS允许你按下Power + VolumeDown的屏幕截图。 我拥有HTC One X,快捷键是Power + Home 。 我不知道这是否会改变任何事情(也许有人用Galaxy Nexus可以试用它)。

我自己的应用程序,通知议程(我不打算链接它,所以我不会被指责为垃圾邮件或类似的东西,但如果没有自我宣传我的应用程序原因,我真的没办法发布这个问题),不允许我以我的One X的上述组合键截图。我可以截取任何其他应用程序的截图,但它不适用于我自己的...

你觉得我在做什么“禁用”这个? 我的应用程序非常简单,发生这种情况的时间并不多。 有任何想法吗?

每当我尝试截取我的应用程序的截图时,我都会在logcat中看到它:

08-24 00:15:40.570: E/InputManager-JNI(277): An exception was thrown by callback 'interceptKeyBeforeDispatching'.
08-24 00:15:40.570: E/InputManager-JNI(277): java.lang.StringIndexOutOfBoundsException: length=83; regionStart=-1; regionLength=83
08-24 00:15:40.570: E/InputManager-JNI(277):    at java.lang.String.startEndAndLength(String.java:593)
08-24 00:15:40.570: E/InputManager-JNI(277):    at java.lang.String.substring(String.java:1474)
08-24 00:15:40.570: E/InputManager-JNI(277):    at com.android.internal.policy.impl.PhoneWindowManager.interceptKeyBeforeDispatching(PhoneWindowManager.java:2375)
08-24 00:15:40.570: E/InputManager-JNI(277):    at com.android.server.wm.InputMonitor.interceptKeyBeforeDispatching(InputMonitor.java:307)
08-24 00:15:40.570: E/InputManager-JNI(277):    at com.android.server.wm.InputManager$Callbacks.interceptKeyBeforeDispatching(InputManager.java:663)
08-24 00:15:40.570: E/InputManager-JNI(277):    at dalvik.system.NativeStart.run(Native Method)

截图工作时不会发生这种情况。 相反,其他一些调用截图应用程序和许多其他事情都被记录下来。

为什么我的应用程序阻止了屏幕截图并产生了上述错误?


我会检查是否将采用屏幕截图的应用程序(对您所讨论的组合键作出反应的应用程序)注册为系统应用程序。 Android设计停止共享framebuffer的应用程序,所以任何试图截屏的应用程序都不会这样做。

深入了解该应用的行为和设计。


有一件事可以导致您的窗口打开FLAG_SECURE。 http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SECURE


我有同样的问题。 您可以使用Eclipse的DDMS透视图获取屏幕截图,只需运行您的应用程序,输入DDMS透视图并单击“设备”选项卡上的相机图标即可

链接地址: http://www.djcxy.com/p/62819.html

上一篇: Any reason why I cannot take a screenshot of my app with ICS built

下一篇: ADO.Net SQLCommand.ExecuteReader() slows down or hangs