Me gustaría iniciar un intentchooser para aplicaciones que pueden devolver cualquier tipo de archivo
Actualmente uso (que copié del código fuente del correo electrónico de Android para el archivo adjunto)
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
Intent i = Intent.createChooser(intent, "File");
startActivityForResult(i, CHOOSE_FILE_REQUESTCODE);
Pero solo muestra "Galería" y "Reproductor de música" en mi Galaxy S2. Hay un explorador de archivos en este dispositivo y me gustaría que apareciera en la lista. También me gustaría que la aplicación de la cámara se mostrara en la lista, para que el usuario pueda tomar una foto y enviarla a través de mi aplicación. Si instalo el administrador de archivos Astro, también responderá a esa intención. Mis clientes son solo propietarios de Galaxy SII y no quiero obligarlos a instalar el administrador de archivos Astro dado que ya tienen un administrador de archivos básico pero suficiente.
¿Alguna idea de cómo podría lograr esto? Estoy bastante seguro de que ya vi aparecer el administrador de archivos predeterminado en dicho menú para elegir un archivo, pero no recuerdo en qué aplicación.
fuente
Respuestas:
No para la cámara, sino para otros archivos.
En mi dispositivo lo he
ES File Explorer
instalado y esto simplemente funciona en mi caso ..fuente
onActivityResult()
- Puede obtenerUri
del Archivo.PICKFILE_RESULT_CODE
debería serPICKFILE_REQUEST_CODE
.El explorador de archivos de Samsung no solo necesita una acción personalizada ( com.sec.android.app.myfiles.PICK_DATA ), sino también la parte de categoría (Intent. CATEGORY_DEFAULT ) y el tipo mime debe pasarse como extra.
También puede usar esta acción para abrir varios archivos: com.sec.android.app.myfiles.PICK_DATA_MULTIPLE De todos modos, aquí está mi solución que funciona en Samsung y otros dispositivos:
Esta solución funciona bien para mí y quizás sea útil para otra persona.
fuente
este trabajo para mí en Galaxy Note es mostrar contactos, administradores de archivos instalados en el dispositivo, galería, reproductor de música
aquí entra en
onActivityResult
actividad.fuente
Esto me da el mejor resultado:
fuente
Resulta que el explorador de archivos de Samsung usa una acción personalizada. Es por eso que pude ver el explorador de archivos de Samsung cuando busco un archivo de las aplicaciones de Samsung, pero no de la mía.
La acción es "com.sec.android.app.myfiles.PICK_DATA"
Creé un Selector de actividades personalizado que muestra actividades que filtran ambas intenciones.
fuente
Si desea saber esto, existe una biblioteca de código abierto llamada aFileDialog que es pequeña y fácil de usar y que proporciona un selector de archivos.
La diferencia con las bibliotecas de otro selector de archivos para Android es que aFileDialog le da la opción de abrir el selector de archivos como un diálogo y como una actividad.
También le permite seleccionar carpetas, crear archivos, filtrar archivos usando expresiones regulares y mostrar cuadros de diálogo de confirmación.
fuente
Las otras respuestas no son incorrectas. Sin embargo, ahora hay más opciones para abrir archivos. Por ejemplo, si desea que la aplicación tenga acceso permanente y a largo plazo a un archivo, puede usar
ACTION_OPEN_DOCUMENT
en su lugar. Consulte la documentación oficial: Abra archivos usando el marco de acceso al almacenamiento . Consulte también esta respuesta .fuente