Posición: Advanced Member
Grupos: Registered
Registrado: 21/10/2013(UTC) Mensajes: 39
Agradecimientos: 4 veces Fue agradecido: 8 vez/veces in 6 publicación(es).
|
Buenos días! Estoy almacenando imágenes tomadas por la cámara en una carpeta en memoria externa. Pero, para mi sorpresa, se guarda en memoria interna, dentro de la carpeta de la aplicación y no se muy bien porque sucede. El código es el siguiente: Código:public class Camara extends Activity{
private static final int IMAGEN_CAPTURADA = 1;
Uri fileUri = null;
ImageView fotoImagen = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Intent camara. Se le indica que la accion del intent será capturar una imagen
Intent camara = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = Uri.fromFile(ficheroFoto());
//Idicamos al intent de captura donde se guardará la foto en caso de confirmarlo
camara.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(camara, IMAGEN_CAPTURADA );
}
//Sobreescribimos este metodo para lo que necesitamos
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Intent cambio_actividad = new Intent();
if (requestCode == IMAGEN_CAPTURADA) {
if (resultCode == RESULT_OK) {
Toast.makeText(this, "Foto guardada con éxito",
Toast.LENGTH_LONG).show();
cambio_actividad.setClass(this, Camara.class);
startActivity(cambio_actividad);
}
else if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "Cancelado", Toast.LENGTH_SHORT).show();
cambio_actividad.setClass(this, MainActivity.class);
startActivity(cambio_actividad);
}
}
}
private File ficheroFoto() {
//Creamos directorio foto
File dir = new File(this.getExternalFilesDir(Environment.DIRECTORY_DCIM), "Fotos");
if(!dir.exists()){
dir.mkdir();
}
String horaLocal = new SimpleDateFormat("yyyMMdd_HHmmss", Locale.ROOT).format(new Date());
File foto = new File(dir, "IMG_" + horaLocal + ".jpg");
return foto;
}
}
Las fotos tomadas se guardan en memoria interna/Android/data/nombredemipaquete/files. No se porque sucede esto, he probado con variantes como getExternalStoragePublicDirectory y tal y sigue igual. He usado getExternalFilesDir porque quiero que al desintalar mi aplicación, se borren las fotos. En manifest, puse la etiqueta installLocation=preferExternal para que se instalara en la memoria SD pero tampoco lo hace. Espero que podais ayudarme. Gracias adelantadas!
|