Galaxy S3: tomar fotos en modo retrato destruye actividad

Por lo tanto, esta pregunta se ha pedido en muchas formas en este foro, pero ninguna de las respuestas me están ayudando. Tengo un error que sólo he podido reproducir en el Samsung Galaxy S3.

Quiero simplemente tomar y almacenar una foto usando la cámara del teléfono, pero mi Actividad está siendo destruida antes de que yo vuelva a escuchar de onActivityResult. Esto sucede SOLAMENTE cuando utilizo la cámara en modo del retrato, en modo del paisaje está muy bien.

Estoy usando este código para iniciar la cámara:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, Config.ACTIVITY_TAKE_PHOTO); 

En modo retrato, nunca veo una llamada a onActivityResult (de la actividad Cámara), sólo veo un onDestroy () llamado en mi actividad de lanzamiento. No hay excepciones o errores en el registro, y nada obviamente equivocado para hacer que se bloquee.

He visto mensajes que recomiendan añadir "android: configChanges =" orientation | keyboardHidden "" al Manifiesto, y hacer muchas otras cosas para administrar el cambio de orientación que se produce al usar la cámara, pero nada ha ayudado hasta ahora.

¿Alguien más ha resuelto este problema?

Si está apuntando más allá del nivel API 13,

 android:configChanges="orientation|keyboardHidden" 

Al Manifiesto no será suficiente.

Comprueba este extracto de la documentación de Android

Nota: Si su aplicación apunta al nivel API 13 o superior (como declarado por los atributos minSdkVersion y targetSdkVersion), también debe declarar la configuración "screenSize", porque también cambia cuando un dispositivo cambia entre orientaciones vertical y horizontal.

Por lo tanto, intenta agregar

 android:configChanges="orientation|keyboardHidden|screenSize" 

A su archivo de manifiesto. Esto debería solucionar tu problema.

Android puede llamar al método destroy () en ciertos escenarios. Uno es cuando usamos el método finish (). Una alternativa es usar el método isFinishing () de la clase Activity. Si realmente se está finalizando podría finalizar sus recursos, de lo contrario, puede mantener los valores asignados a una clase que hereda Application

 @Override protected void onDestroy() { final YourApp app = (YourApp) getApplicationContext(); if (app != null && isFinishing()) { app.finalizeAppResources(); } // ... super.onDestroy(); } 
  • "No se puede abrir el dispositivo de registro" dev / log / main "" error?
  • Apache cordova aplicación de reinicio de la cámara en la galaxia S5
  • Cómo obtener el ancho de ventana correcto en el cambio de orientación para dispositivos Android, tabletas y móviles
  • ¿Cómo probar la aplicación Android en la configuración de Galaxy S4 con el emulador?
  • Aplicación de Android Studio en ejecución en el Samsung Galaxy S3 se bloquea al subir el archivo
  • Creación del emulador Galaxy S5
  • Samsung que cuelga API con el dedo
  • Java.lang.OutOfMemoryError en Android 5.0, causado por una asignación de 16k cuando 5M está disponible
  • ¿Cómo puedo probar automáticamente la funcionalidad de las aplicaciones iOS y Android?
  • DDMS (monitor de depuración de Android) no lista procesos en Galaxy S II
  • Problema de cierre de cámara en Samsung Galaxy S3 versión 4.1.1
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.