Photo saved but does not appear in gallery [closed]

1

Good evening, I'm working on a camera project that adds what the user writes in the text fields in the name of the photo.

The application works only if the photo does not go to the gallery. It only appears in the gallery if I access the folder by the PC, that is, it is saved but to see it in the gallery I need to connect a USB cable to access the folder, then it appears.

Follow activity     / **      *
     * /     package info.androidhive.androidcameraapi;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import matheus.arruda.msinfo.dev.com.R;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.provider.MediaStore.Images;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.VideoView;
import android.app.AlertDialog;

public class MainActivity extends Activity {


    private static final int CAMERA_CAPTURE_IMAGE_REQUEST_CODE = 100;
    private static final int CAMERA_CAPTURE_VIDEO_REQUEST_CODE = 200;
    public static final int MEDIA_TYPE_IMAGE = 1;
    public static final int MEDIA_TYPE_VIDEO = 2;

    // Diretório para salvar
    private static final String IMAGE_DIRECTORY_NAME = "DBQ_LTQ";

    private Uri fileUri;

    public static  EditText txtum;
    public static  EditText txtoutros;
    private static Spinner spinlado;
    private Button btnCapturePicture, btnRecordVideo, sobrebtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        txtum = (EditText)findViewById(R.id.txtum);  
        txtoutros = (EditText)findViewById(R.id.txtoutros);  
        spinlado = (Spinner) findViewById(R.id.spinlado);
        btnCapturePicture = (Button) findViewById(R.id.btnCapturePicture);
        btnRecordVideo = (Button) findViewById(R.id.btnRecordVideo);
        sobrebtn = (Button) findViewById(R.id.sobrebtn);






        btnCapturePicture.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                if(txtum.length()==0){
                    Toast.makeText(getApplicationContext(),
                            "ATENÇÃO: - O campo Unidade Metálica é de preenchimento obrigatório, favor preencher e tentar novamente.",
                            Toast.LENGTH_LONG).show();
                    }
                else {
                    captureImage();
                }

            }

        });


        btnRecordVideo.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if(txtum.length()==0){
                    Toast.makeText(getApplicationContext(),
                            "ATENÇÃO: - O campo Unidade Metálica é de preenchimento obrigatório, favor preencher e tentar novamente.",
                            Toast.LENGTH_LONG).show();
                    }
                else {
                    recordVideo();
                }
            }
        });



        sobrebtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                setContentView(R.layout.sobre);


                 new java.util.Timer().schedule( 
                        new java.util.TimerTask() {
                            @Override
                            public void run() {

                                Intent intent = getIntent();

                                startActivity(intent);
                            }
                        }, 
                        3000
                );
            }
        });



        // Checking camera availability
        if (!isDeviceSupportCamera()) {
            Toast.makeText(getApplicationContext(),
                    "Erro (7002) Seu dispositivo não possui uma camera.",
                    Toast.LENGTH_LONG).show();
            // Fecha a activity caso o aparelho não possua camêra
            finish();
        }
    }

    /**
     * Verifica a compatibilidade do telefone
     * */
    private boolean isDeviceSupportCamera() {
        if (getApplicationContext().getPackageManager().hasSystemFeature(
                PackageManager.FEATURE_CAMERA)) {

            return true;
        } else {

            return false;
        }
    }


    private void captureImage() {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

        fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);

        intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);


        startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);
    }


    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);


        outState.putParcelable("file_uri", fileUri);
    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);


        fileUri = savedInstanceState.getParcelable("file_uri");

    }


    private void recordVideo() {
        Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);

        fileUri = getOutputMediaFileUri(MEDIA_TYPE_VIDEO);


        intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);

        intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); 


        // inicia a camêra
        startActivityForResult(intent, CAMERA_CAPTURE_VIDEO_REQUEST_CODE);
    }


    /**
     * Receiving activity result method will be called after closing the camera
     * */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (requestCode == CAMERA_CAPTURE_IMAGE_REQUEST_CODE) {
            if (resultCode == RESULT_OK) {

                previewCapturedImage();
            } else if (resultCode == RESULT_CANCELED) {
                // Alertas
                Toast.makeText(getApplicationContext(),
                        "Você fechou a camera", Toast.LENGTH_SHORT)
                        .show();
            } else {

                Toast.makeText(getApplicationContext(),
                        "Desculpe! O aplicativo falhou.", Toast.LENGTH_SHORT)
                        .show();
            }
        } else if (requestCode == CAMERA_CAPTURE_VIDEO_REQUEST_CODE) {
            if (resultCode == RESULT_OK) {

                previewVideo();
            } else if (resultCode == RESULT_CANCELED) {

                Toast.makeText(getApplicationContext(),
                        "Você cancelou a gravação do video", Toast.LENGTH_SHORT)
                        .show();
            } else {

                Toast.makeText(getApplicationContext(),
                        "Desculpe! O aplicativo falhou favor reiniciar a gravação", Toast.LENGTH_SHORT)
                        .show();
            }
        }
    }


    private void previewCapturedImage() {
        try {
            // // exibe um preview


            // gera mapa
            BitmapFactory.Options options = new BitmapFactory.Options();

            // ajusta o OutOfMemory do app a fim de evitar erros

            options.inSampleSize = 8;

            final Bitmap bitmap = BitmapFactory.decodeFile(fileUri.getPath(),
                    options);


        } catch (NullPointerException e) {
            e.printStackTrace();

        }
    }

    // exibe um preview
    private void previewVideo() {
        try {


        } catch (Exception e) {
            e.printStackTrace();
        }
    }



    /*
     * Cria o ID Uri da foto/video
     */
    public Uri getOutputMediaFileUri(int type) {
        return Uri.fromFile(getOutputMediaFile(type));
    }

    /*
     * Retorna com a foto/video
     */
    private static File getOutputMediaFile(int type) {

        // Seta o diretorio externo
        File mediaStorageDir = new File(
                Environment
                        .getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM),
                IMAGE_DIRECTORY_NAME);

        // Cria diretoria
        if (!mediaStorageDir.exists()) {
            if (!mediaStorageDir.mkdirs()) {
                Log.d(IMAGE_DIRECTORY_NAME, "Erro: (7001) Entre em contato com o administrador "
                        + IMAGE_DIRECTORY_NAME + " directory");
                return null;
            }
        }




        String unidademetalica = ((String) txtum.getText().toString());
        String outrasinformacoes = ((String) txtoutros.getText().toString());
        String lado = spinlado.getSelectedItem().toString();


        // Cria arquivo

        String timeStamp = new SimpleDateFormat("ddMMyyyy_HHmmss",
                Locale.getDefault()).format(new Date());
        File mediaFile;
        if (type == MEDIA_TYPE_IMAGE) {
        mediaFile = new File(mediaStorageDir.getPath() + File.separator
                + "UM_ " + unidademetalica + " Lado_" + lado + " Outros_ " + outrasinformacoes + " Data_ " + timeStamp + ".jpg");      



        } else if (type == MEDIA_TYPE_IMAGE) {
        mediaFile = new File(mediaStorageDir.getPath() + File.separator
                + "UM_ " + unidademetalica + " Lado_" + lado + " Outros_ " + outrasinformacoes + " Data_ " + timeStamp + ".mp4");      

        } else {
            return null;
        }

        return mediaFile;


    }


}
    
asked by anonymous 23.09.2015 / 01:08

0 answers