Android: MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA

¿Puede alguien darme pautas sobre cómo encontrar el directorio en el que mi dispositivo Android almacena sus imágenes tomadas de una cámara?

En el siguiente fragmento de código, tengo la intención de obtener una lista de archivos antes de iniciar la aplicación de la cámara. Al regresar de la aplicación de la cámara, obtenga una lista de todos los archivos en el mismo directorio y procese los nuevos agregados.

public void onBtnTakePhoto(final View view) { existingfiles = UploadImageService.getFiles(); final Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA); startActivityForResult(intent, TAKE_PICTURE); } public void onActivityResult(final int requestCode, final int resultCode, final Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case TAKE_PICTURE: List newFies = UploadImageService.getFiles(); newFies.removeAll(existingfiles); for (String newFile : newFies) { File file = new File(newFile); addImage( Uri.fromFile(file), PictureSource.CAMERA); } break; } // regardless of which activity, check that files exist: verifyFilesExist(images); } 

Por lo que yo entiendo, en realidad deberías lanzar tu bash con la acción ACTION_IMAGE_CAPTURE (en lugar de INTENT_ACTION_STILL_IMAGE_CAMERA). Luego, en onActivityResult debes obtener los datos del Intento: allí encontrarás la referencia a la imagen.

Mira los ejemplos dados aquí .

Pero si veo su respuesta, probablemente le resulte más útil:

 String[] projection = { MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATA }; String selection = ""; String[] selectionArgs = null; mImageExternalCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, selection, selectionArgs, null); mImageInternalCursor = managedQuery(MediaStore.Images.Media.INTERNAL_CONTENT_URI, projection, selection, selectionArgs, null); 

entonces

 String filePath = mImageExternalCursor.getString(mImageExternalCursor.getColumnIndexOrThrow( Media‌Store.Images.ImageColumns.DATA)); 

(ya que en realidad no quieres tomar una nueva foto).