¿Alguna razón por la que no pueda tomar una captura de pantalla de mi aplicación con el acceso directo integrado de ICS?

Al principio, esto podría no parecer el lugar adecuado para pedir esto … Pero ya que sólo he notado este problema con mi propia aplicación, supongo que no hay otro lugar para preguntar. Tal vez estoy haciendo algo mal, pero no tengo ni idea de qué …

Como probablemente ya sepa, ICS le permite tomar una captura de pantalla de la pantalla pulsando Power + VolumeDown . Tengo un HTC One X y el atajo es Power + Home . No sé si esto cambia algo (tal vez alguien con un Galaxy Nexus podría probarlo).

Mi propia aplicación, Notification Agenda (no voy a vincularlo así que no estoy acusado de SPAM o algo similar, pero realmente no hay manera de publicar esta pregunta sin auto-publicidad de mi causa de la aplicación), no me permite Para tomar capturas de pantalla con la combinación de teclas anterior con mi One X. Puedo tomar capturas de pantalla de cualquier otra aplicación, pero no funciona por mi cuenta …

¿Qué diablos crees que estoy haciendo para "desactivar" esto? Mi aplicación es muy simple y no hay mucho que hacer para que esto suceda. ¿Algunas ideas?

Cada vez que intento tomar una captura de pantalla de mi aplicación, tengo esto en 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) 

Eso no sucede cuando la captura de pantalla funciona. En su lugar, un montón de otras llamadas a la aplicación de captura de pantalla y muchas otras cosas se registran.

¿Por qué mi aplicación está impidiendo la captura de pantalla y generando el error anterior?

Comprobaría si la aplicación que toma la captura de pantalla (la que reacciona a la combinación de teclas de la que habla) está registrada como aplicación de sistema. Android by design impide que las aplicaciones compartan el framebuffer, por lo que cualquier aplicación que intente tomar capturas de pantalla no funcionará.

Profundizar en el comportamiento de la aplicación y el diseño.

Una cosa que puede causar esto es que FLAG_SECURE esté activado para su ventana. http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SECURE

Yo tuve el mismo problema. Puedes usar la perspectiva DDMS de Eclipse para tomar capturas de pantalla, ejecuta tu aplicación, ingresa la perspectiva de DDMS y haz clic en el ícono de la cámara en la pestaña "devices"

  • Tome screensot y guarde android
  • ¿Cómo tomar la captura de pantalla de la página de actividad ENTERO mediante programación?
  • Desactivar captura de pantalla en mi aplicación Android
  • Utilizar ADB para capturar la pantalla
  • Android: ¿Cómo puede obtener framebuffer (captura de pantalla) en un dispositivo con raíz?
  • ¿Cómo tomar la captura de pantalla mediante programación?
  • Ocultar pantalla en "Lista de aplicaciones recientes", pero permitir capturas de pantalla
  • Cómo tomar una captura de pantalla mediante programación en android de Alert Dialog
  • ¿Es posible tomar una captura de pantalla de una vista, sin mostrar la vista?
  • ¿Toma una captura de pantalla parcial en Android?
  • Captura de pantalla programática en dispositivo móvil
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.