Hola que tal estoy tratando de guardar las fotos que tomo con mi dispositivo (un celular LG L70 con Android 4.4 KitKat) si logro conseguir tomar la foto lo que no logro es guardarla es en la microSD del dispositivo, solo crea la carpeta y la guarda dentro de la carpeta pero dentro del almacenamiento interno del dispositivo. Me he guiado de tutoriales y los he seguido minusiosamente los pasos que se indican pero nada mas no encuentro cual puede ser mi error, les pido de favor me orienten. Este es el codigo que estoy utilizando:
package com.jarp.tomafoto2;
import android.app.Activity;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class Foto1 extends Activity {
private File file = new File(Environment.getExternalStorageDirectory() + "/CheckList/");
//private File Archivo = new File(Environment.getExternalFilesDir(Environment.DIRECTORY_PICTURES)+ "/misFotos/");
private Button boton;
Uri uri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_foto1);
boton = (Button) findViewById(R.id.btnTomaFoto);
//Si no existe crea la carpeta donde se guardaran las fotos
file.mkdirs();
//accion para el boton
boton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
File mi_foto = new File( file,getCode() + ".jpg");
try {
mi_foto.createNewFile();
} catch (IOException ex) {
Log.e("ERROR ", "Error:" + ex);
}
//
uri = Uri.fromFile(mi_foto);
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(cameraIntent, 1);
mensaje ();
}
});
}
@SuppressLint("SimpleDateFormat")
private String getCode()
{
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyymmddhhmmss");
String date = dateFormat.format(new Date() );
String photoCode = "mimr_" + date;
return photoCode;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.foto1, menu);
return true;
}
public void mensaje (){
Toast toast = Toast.makeText(this, uri.toString(), Toast.LENGTH_SHORT);
toast.show();
}
}
si necesitan algun dato mas para darme a entender mejor me lo hagan saber. Sin mas por el momento me despido en espera de su valiosa ayuda. Saludos Cordiales.
Nota en el AndroidManifest tengo estos permisos:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>