Minha câmera Android Uri está retornando um valor nulo, mas a correção da Samsung está em vigor, ajuda?

Portanto, estou ciente do problema da câmera nos dispositivos Samsung. Você precisa criar um Uri antes de chamar a intenção da câmera da seguinte forma:

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);

Este exemplo cria um Uri para a câmera armazenar os dados. Meu aplicativo tem uma função de câmera em dois locais. Ambos são idênticos (pasta de cópia direta), mas em uma atividade omImageUri objeto @ se torna nulo durante o processo da câmera, enquanto no outro não. O último funciona bem, mas o primeiro fornece um valor nulo que, por sua vez, me impede de salvar a imagem, pré-visualizá-la, etc. Fornecerei o código onResult abaixo:

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;

O exemplo acima é da atividade de trabalho. Abaixo está a atividade em que isso não funciona:

//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;

Observe os arquivos de log que coloquei neste segundo exemplo. Quando clico no botão "Tirar foto", a verificação nula domImageUri objeto retorna verdadeiro. Portanto, este objeto não é nulo. Mas em algum lugar durante o processo de fotografia, esse valor se torna nulo. A segunda verificação durante onResult () retorna false. Novamente, isso é quase idêntico à minha configuração na outra atividade, onde funciona be

Alguma ideia

questionAnswers(2)

yourAnswerToTheQuestion