Pregunta

Así que estoy tratando de poner en marcha la actividad de la cámara utilizando el código siguiente:

//In public void captureImage()
...
Intent cameraIntent = new Intent(MediaStore.ACTION_CAPTURE_IMAGE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                      Uri.fromFile(new File("/sdcard/image.jpg")));
startActivityForResult(cameraIntent, REQUEST_CAMERA);

Y a continuación, para manejar el resultado:

//In onActivityResult()
...
case REQUEST_CAMERA:
  Intent intent = new Intent (CurrentScreen.this, NextScreen.this);
  intent.putExtra(data);
  startActivity(intent);
  CurrentScreen.this.finish();
...

Cuando utilizo intent.putExtra(data) para unir el pequeño mapa de bits a la intención, y utilizarlo como una miniatura en la siguiente actividad, y el archivo de tamaño completo se guarda como supuestamente /sdcard/image.jpg.

Este es el comportamiento esperado (según la documentación), para tener un pequeño mapa de bits para una imagen en miniatura, y un gran archivo guardado. Sin embargo cuando se prueba esto en un G1 y una Eris, he estado viendo un comportamiento extraño.

En el G1:

  • Aunque los espectáculos resultCode RESULT_OK, los datos de intención que se devuelve al controlador resultado es nulo.
  • También EXTRA_OUTPUT parece estar completamente ignorado, no tengo idea de donde se guarda la imagen.

En el Eris:

  • Los datos intención regresa Aceptar
  • EXTRA_OUTPUT también se ignora, sino que es el ahorro de las imágenes a la tienda de los medios de comunicación regular en /sdcard/dcim/100media

Así que mi pregunta es la siguiente: ¿Hay alguna manera de obtener un comportamiento coherente para lo que yo estoy tratando de hacer uso de la actividad de la cámara estándar? Podría escribir una actividad personalizada para tratar de conseguir que funcione como yo quiero, pero yo preferiría evitar esa ruta.

¿Fue útil?

Solución

No tengo respuestas a su pregunta como soy nuevo en el mundo de desarrollo Java / Android. Pero estoy intentando algo similar a lo que está haciendo, excepto que yo quiero simplemente tomar la imagen a continuación, adjuntarlo a un mensaje de correo electrónico.

Me implementa parte de su ejemplo y pudo comprobar que la cámara ha creado el archivo que se especifica y que si uso el mismo nombre de archivo de la siguiente imagen que sobrescribe el archivo anterior que es lo que cabría esperar.

Pero lo que realmente iba a decir es que tal vez tendrá que prueba si el pat "/ sdcard / ..." en realidad existe o no. También usted podría simplificar su proceso por el que pasa la ruta de acceso a la siguiente actividad.

Buena suerte,

Jamie Irwin

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top