Mon appareil photo Android Uri est de retourner une valeur nulle, mais le Samsung correctif est en place, de l'aide?

Donc je suis conscient de l'appareil photo problème sur les appareils Samsung. Vous avez besoin de créer une Uri avant l'appel de la caméra à l'intention de la sorte:

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, m_username);
mImageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

Cet exemple permet de créer une Uri de l'appareil pour stocker les données. Mon application a une fonction de caméra dans les deux endroits. Les deux sont identiques (direct copier coller), mais dans l'activité de la mImageUri objet devient nul lors de la caméra, alors que dans l'autre il ne l'est pas. Ce dernier fonctionne très bien, mais l'ancien donne une valeur null qui à son tour m'arrête à partir de l'enregistrement de l'image, prévisualisation, etc. Je vais donner le onResult code ci-dessous:

case CAMERA_PIC_REQUEST :
if(resultCode == RESULT_OK) {
    if(intent != null) {
        //For non-Samsung devices
        Log.e("Intent value:", intent.toString());
        mImageUri = intent.getData();
    }

    mAvatar = BitmapStatic.createImage(mImageUri, this);
    Drawable draw = new BitmapDrawable(getResources(), mAvatar);
    m_photoButtonE.setImageDrawable(draw);
    m_imageChanged = true;
}
break;

L'exemple ci-dessus est à partir de l'activité de travail. Ci-dessous est l'activité où cela ne fonctionne pas:

//On pressing the "Take Photo" button:
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, mUsername);
mImageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
if(mImageUri == null) {
    Log.e("image uri is null", "what?");
}
else {
    Log.e("oh nevermind", "image uri is NOT null");
}
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

//On Result:
case CAMERA_PIC_REQUEST :
if(resultCode == RESULT_OK) {
    if(intent != null) {
        Log.e("Intent value:", intent.toString());
        mImageUri = intent.getData();
    }
    else {
        Log.e("Intent is null", "yep it is.");
        if(mImageUri == null) {
            Log.e("nullcheck on memberimageuri", "its null");
        }
        else {
            Log.e("nullcheckon memberimage", mImageUri.toString());
        }
    }
    mImage = BitmapStatic.createImage(mImageUri, this);
    Drawable draw = new BitmapDrawable(getResources(), mImage);
    mPhotoPreview.setImageDrawable(draw);
}
break;

Avis les fichiers de log, j'ai mis dans cette 2ème exemple. Lorsque je clique sur le "Prendre une Photo" bouton, la valeur null est à vérifier pour la mImageUri objet renvoie la valeur true. Si cet objet n'est pas null. Mais quelque part au cours de l'image du processus de la prise de cette valeur devient nulle. La 2ème vérifier au cours de la onResult() renvoie la valeur false. Encore une fois, c'est presque identique à mon installation dans l'autre activité, où il fonctionne très bien.

Toutes les pensées?

InformationsquelleAutor JMRboosties | 2011-11-23