Ver contenido de la carpeta en Android usando el explorador predeterminado

Quiero iniciar un explorador de archivos por defecto para mostrar el contenido de una carpeta.

Estoy usando este código, pero se bloquea:

Uri startDir = Uri.fromFile(new File("/sdcard/DCIM/Camera")); Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(startDir); startActivity(intent); 

LogCat muestra "No Activity found to handle the Intent" …

¿Cuál es mi mejor opción para hacer esto? Quiero que el usuario vea el contenido de la carpeta y pueda hacer clic en los archivos (por ejemplo, hacer clic en un video y lanzarlo con el reproductor predeterminado, hacer clic en un PDF y abrirlo).

2 Solutions collect form web for “Ver contenido de la carpeta en Android usando el explorador predeterminado”

Desafortunadamente parece que no hay una forma estándar de hacerlo, estaba buscando exactamente lo mismo antes y no pude encontrar ninguna solución. Hay 2 métodos alternativos que podrían funcionar para usted:

1) Utilizar una intención general y dejar que el usuario escoger su administrador de archivos Esto es seguro y fácil, pero un poco lejos de lo que realmente queremos

 Uri startDir = Uri.fromFile(new File(Environment.getExternalStorageDirectory() .getAbsolutePath() + "/DCIM/Camera")); Intent intent = new Intent(); intent.setData(startDir); intent.setType("*/*"); intent.setAction(Intent.ACTION_VIEW); startActivity(intent); 

No utilice intent.setType("file/*"); , no es un tipo MIME estándar.

2) Utilizar los intentos específicos que los famosos gestores de archivos proporcionan Los administradores de archivos bien conocidos tienen sus propios filtros de intenciones personalizados que aceptan una ruta de directorio que permite una navegación sencilla. Algunos de ellos están aquí: OI file manager , ES Explorer

Tal vez usted podría comprobar si el usuario tiene estos gestores de archivos específicos instalados y luego utilizar esta solución, sino volver a la intención general.

Por ahora estas son las dos únicas opciones que tienes. Actualizaré este post si descubro alguna solución mejor.

Aunque no pude obtener el administrador de archivos OI para ir a un directorio específico, lo siguiente abre el OI File Manager directamente y va al último directorio en el que se encontraba.

 Intent importFileIntent = new Intent(); importFileIntent.setType( "file/*" ); // Does nothing. // Uri startingDir = Uri.fromFile( new File( // Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/Camera")); // importFileIntent.setData( startingDirectory ); importFileIntent.setAction( Intent.ACTION_GET_CONTENT ); // Ensure that there's an activity to handle the intent. if (importFileIntent.resolveActivity(getPackageManager()) == null) return; startActivityForResult(importFileIntent, REQUEST_FILE_IMPORT); 

Si alguien tiene más éxito, me encantaría escucharlo.

  • La cámara no funciona / ahorra al usar Uri de caché como MediaStore.EXTRA_OUTPUT
  • Captura e interceptación de ACTION_SEND intents en Android
  • Android: ¿Cómo reanudar la aplicación y la actividad de BroadcastReceiver?
  • Mi WearableListenerService no se inicia cuando se reinicia Android
  • Cómo utilizar Intent.ACTION_APP_ERROR como medio para un marco de "retroalimentación" en Android?
  • ¿Cómo saber qué intención está seleccionada en Intent.ACTION_SEND?
  • Actividad de la cámara que hace que uri pase a null cuando la orientación de la pantalla cambia
  • Actividad exportada = false en el selector de actividades
  • Android: cómo cambiar el diseño en el botón de clic?
  • Android Video Recording, intención de la cámara
  • ¿Cómo detener una actividad en android usando la intención?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.