2012-03-29 11 views
15

Cómo utilizar el intento para solicitar al usuario que elija "finalizar acción con" para elegir la aplicación para seleccionar el archivo (suponiendo que hay algunas aplicaciones para buscar archivos en el dispositivo)Cómo usar el intento de elegir el explorador de archivos para seleccionar el archivo

que desea filtrar el archivo con una extensión .. (por ejemplo:. * .sav, .props *)

gracias de antemano

+0

visita este hilo, http://stackoverflow.com/questions/5537907/view -file-path-in-a-file-manager-as-android-intent Si no estoy equivocado, esto podría ayudarlo. –

Respuesta

39

puede usar algo como esto:

.... 
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
    intent.setType("file/*"); 
    startActivityForResult(intent, YOUR_RESULT_CODE); 
    .... 

B Pero realmente dudo que pueda establecer un filtro de navegadores de archivos de terceros. O puede intentar utilizar este diálogo de archivo: http://code.google.com/p/android-file-dialog/

+2

Gracias por el enlace ... :) es realmente simple y útil filebrowser –

+6

Necesitaba usar 'intent.setType (" */* ")' en su lugar. Ningún tipo MIME que sé comienza con 'archivo /'. – Alicia

-5

// consulte aquí KITKAT o la nueva versión y esto también resolverá el problema de exploración de archivos de Samsung.

boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT; 
if (isKitKat) { 
    Intent intent = new Intent(); 
    intent.setType("*/*"); 
    intent.setAction(Intent.ACTION_GET_CONTENT); 
    startActivityForResult(intent,FILE_SELECT_CODE); 
} else { 
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
    intent.setType("*/*"); 
    startActivityForResult(intent,FILE_SELECT_CODE); 
} 
+9

Código en if/else está haciendo lo mismo – roplacebo

6

Esto abrirá el explorador de archivos incorporado si está disponible, de lo contrario le pedirá que seleccione un explorador de archivos que haya instalado.

private void showFileChooser() { 

    Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
    //intent.setType("*/*");  //all files 
    intent.setType("text/xml"); //XML file only 
    intent.addCategory(Intent.CATEGORY_OPENABLE); 

    try { 
     startActivityForResult(Intent.createChooser(intent, "Select a File to Upload"), FILE_SELECT_CODE); 
    } catch (android.content.ActivityNotFoundException ex) { 
     // Potentially direct the user to the Market with a Dialog 
     Toast.makeText(this, "Please install a File Manager.", Toast.LENGTH_SHORT).show(); 
    } 
} 
0

Puede ayudarle a elegir un archivo doc y U puede cambiar la acción según su necesidad

 Intent intent; 
     if (VERSION.SDK_INT >= 19) { 
      intent = new Intent("android.intent.action.OPEN_DOCUMENT"); 
      intent.setType("*/*"); 
     } else { 
      PackageManager packageManager =getActivity().getPackageManager(); 
      intent = new Intent("android.intent.action.GET_CONTENT"); 
      intent.setType("file*//*"); 
      if (packageManager.queryIntentActivities(intent,MEDIA_TYPE_IMAGE).size() == 0) { 
       UserToast.show(getActivity(), getResources().getString(R.string.no_file_manager_present)); 
      } 
     } 
     if (getActivity().getPackageManager().resolveActivity(intent, NativeProtocol.MESSAGE_GET_ACCESS_TOKEN_REQUEST) != null) { 
      startActivityForResult(intent, UPLOAD_FILE); 
     } 
Cuestiones relacionadas