5

Sto utilizzando l'intento predefinito della videocamera per ottenere l'immagine nella mia app. Il problema è che la fotocamera restituisce null su onActivityResult(). Il ResultCode e RequestCode restituiscono come previsto.L'intento Android Inbuild (ActionImageCapture) restituisce l'intento null. Non viene restituito risultato {who = null}

Il mio invito intento è:

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 è:

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 
} 

Come ho messo Log ho ottenuto il resultCode e responseCode non sono nulli

resultCode = -1 
requestCode = 1224 

Dove sto facendo sbaglio?

Ma la foto scattata è memorizzato nel percorso (imageUri) come ho specificato

C'è un altro modo per ottenere l'immagine utilizzando la fotocamera.

risposta

10

Sembra che conosca l'immagine prima di onActivityResult. Questa non è la risposta corretta ma funzionerà bene.

intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 

// Questa immagine uri solo avete intenzione di utilizzare

Quindi non utilizzare

Uri imageuri = data.getData(); 

basta usare l'URI hai conosciuto.

il codice simile a questo:

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

Grazie Shadowtech questo è quello che ho fatto ... E 'di lavoro. :) Sai perché l'intento è nullo? –

+0

Se si rimuove intent.putExtra (MediaStore.EXTRA_OUTPUT, imageUri); in questo modo si otterrà l'immagine nell'intento altrimenti l'Intento sarà nullo e l'immagine verrà memorizzata nell'URI ... –

Problemi correlati