Estoy desarrollando una aplicación de cámara para Android.

Uno de los requisitos es para guardar las fotos tomadas con el dispositivo predeterminado de la cámara de fotos de la carpeta es decir, la carpeta en la que Android nativo de la cámara almacena.

¿Cómo puedo averiguar dónde está el nativo de la cámara es el almacenamiento de las fotos es de tomar – es mi entendimiento de que esto podría ser diferente para diferentes marcas (Samsung, HTC, Motorola, Sony…) y los modelos de Galaxy Tab, Galaxy S4…)

OriginalEl autor OC2PS | 2013-06-07

3 Comentarios

  1. 21

    Uso getExternalStoragePublicDirectory()

    con el parámetro DIRECTORY_PICTURES

    (o, para los demás casos de uso, otros parámetros similares, tales como DIRECTORY_MOVIES)

    Ah! Así DIRECTORY_PICTURES no devuelve el nivel superior de la galería de directorio? Que eso es lo que me confunde.
    Yo diría que DIRECTORY_DCIM es un mejor partido: «en El lugar tradicional para las fotos y videos al montar el dispositivo como una cámara». Dicho esto, el «nativo de la cámara» es bienvenido a hacer lo que quiera, y no hay manera de a priori para que usted sepa donde la cámara almacena sus imágenes.
    Muchas gracias! Esto realmente es lo que estaba buscando.
    pero esta carpeta por lo general también tiene una carpeta de las miniaturas. es posible obtener la carpeta de la cámara en sí? o tal vez debería ignorar carpetas que comienzan con «.» ?
    esta carpeta por lo general también tiene una carpeta de las miniaturas» — no puedo hablar «normalmente», pero DIRECTORY_DCIM puede tener subdirectorios creados por el usuario o por las aplicaciones. «es posible obtener la carpeta de la cámara en sí?» – una cámara no dispone de una carpeta. Cámara aplicaciones pueden poner imágenes donde quieran, ya sea en DIRECTORY_DCIM directamente, en un subdirectorio de DIRECTORY_DCIM, o en algún otro lugar completamente. Y hay muchas, muchas aplicaciones de la cámara.

    OriginalEl autor Alexander Kulyakhtin

  2. 4

    Sé que es un poco tarde para esto, pero usted puede hacer esto:

    String CameraFolder="Camera";
    File CameraDirectory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString());
    File[] files = CameraDirectory.listFiles();
    for (File CurFile : files) {
          if (CurFile.isDirectory()) {
                    CameraDirectory=CurFile.getName();
                    break;
          }
    }
    final String CompleteCameraFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString() + "/" + CameraFolder;

    Si lo desea, puede realizar su operación dentro del bucle for.

    Este enfoque no parece correcto para mí. Por ejemplo, mi directorio DCIM tiene 4 carpetas dentro.
    Se puede tener «Capturas de pantalla», /miniaturas, de otras aplicaciones, carpetas….

    OriginalEl autor Anuraag Vaidya

  3. 2

    Información adicional sobre este tema. Usted necesita agregar un permiso para acceder al dispositivo de almacenamiento externo o listFiles() siempre devuelve null. Añadir a continuación el AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest package="com.tomoima.filedirectory"
          xmlns:android="http://schemas.android.com/apk/res/android">
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <application
        ...

    OriginalEl autor tomoima525

Dejar respuesta

Please enter your comment!
Please enter your name here