5

Estoy utilizando la intención predeterminada de la cámara para obtener la imagen en mi aplicación. El problema es que la cámara devuelve nulo en onActivityResult(). El ResultCode y RequestCode están regresando como se esperaba.La intención de Android Inbuild (ActionImageCapture) devuelve un intento nulo. No se puede entregar el resultado {who = null}

Mi llamado intención es:

private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 1224; 
.... 
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); 
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 

onActivityResult es:

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { 
if (resultCode == RESULT_OK) { 
    //use imageUri here to access the image 
    Uri imageuri = data.getData(); // here is getting crash 
    imageView.setImageFromUri(imageUri); 
} 
} 
} 

void setImageFromUri(Uri imgUri){ 
... TODO assign image from uri 
} 

Como ya he puesto de registro que tiene la resultCode y ResponseCode no son nulos

resultCode = -1 
requestCode = 1224 

Dónde estoy haciendo ¿Error?

Pero la fotografía tomada se almacena en la ruta (imageUri) como he especificado

¿Hay alguna otra manera de obtener una imagen usando la cámara.

Respuesta

10

Parece que ya conoce la imagenUri antes en el resultado de la actividad. Esta no es la respuesta correcta, pero funcionará bien.

intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 

// Esta imagen uri sólo le va a utilizar

Así que no utilice

Uri imageuri = data.getData(); 

sólo tiene que utilizar el URI que se conoce.

su código es el siguiente:

if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { 
    if (resultCode == RESULT_OK) { 
//use imageUri here to access the image 
imageView.setImageFromUri(imageUri); // imageUri should be global in the activity 
    } 
} 
+1

Gracias Shadowtech esto es lo que hice ... Está funcionando. :) ¿Sabes por qué la intención es nula? –

+0

Si elimina intent.putExtra (MediaStore.EXTRA_OUTPUT, imageUri); entonces obtendrás la imagen con intención; de lo contrario, la intención será nula y la imagen se almacenará en el URI ... –

Cuestiones relacionadas