Tengo una aplicación que funciona a pleno rendimiento. Simplemente tiene 1 problema con mi Intención de cámara o permisos.La actividad de la cámara Android no regresa a mi aplicación cuando se presiona el botón Aceptar
Se supone que la aplicación debe iniciar la Actividad de la cámara cuando el usuario presiona un botón. Eso funciona bien, pero cuando el usuario acepta una imagen haciendo clic en el botón Aceptar de la cámara, no vuelve a mi aplicación. Si presionan el botón cancelar en la cámara, vuelve a mi aplicación como se esperaba.
He leído todas las preguntas similares que puedo encontrar aquí, pero ninguna de ellas ha solucionado mi problema. Necesito decirle a la cámara dónde guardar la imagen porque quiero alternar entre 2 en mi aplicación. Aquí está el código que crea la Intención de la cámara y la inicia:
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.parse(imagePath));
startActivityForResult(intent, 11);
He intentado varios valores para imagePath
(que es una cadena), pero el botón OK de la cámara no ha trabajado con ninguno de ellos. Estos son los caminos que he probado:
/mnt/sdcard/<appName>/cameraImages/image1.jpg
from Environment.getExternalStorageDirectory()
/mnt/sdcard/Android/data/<appPkg>/cache/<appName>/cameraImages/image1.jpg
from context.getExternalCacheDir()
/mnt/sdcard/Android/data/<appPkg>/cache/<appName>/cameraImages/image1.jpg
from context.getCacheDir()
que tener los siguientes permisos en mi archivo de manifiesto:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
pueden ustedes ayudar a averiguar qué le pasa a mi código, o me dice lo un camino válido podría ser? Prefiero que la imagen se almacene en una ubicación de caché porque no es importante que la imagen continúe existiendo después de que el usuario abandona la aplicación, pero realmente no me importa quién tenga acceso a la imagen.
Estoy haciendo todas las pruebas en el emulador de 4.1, compilando con el 4.1 SDK, y mi versión mínima es API 8 (2.2).
He puesto un caso para la intención en onActivityResult()
, pero no creo que ustedes necesiten ver ese código porque no debería estar afectando el problema.
verifica en el dispositivo real una vez. y también marque [this] (http://stackoverflow.com/a/7224771/646806) – RobinHood
¿Se llama a 'onActivityResult()'? ¿Puedes ver algo en los registros? –
Alguien verificó la versión de la aplicación usando 'context.getCacheDir()' para 'imagePath' y tuvieron exactamente la misma experiencia; el botón Aceptar en la aplicación de la cámara no funcionaría para ellos. Además, 'onActivityResult()' no se llama cuando presiono el botón OK. – cmasupra