Cómo usar el bash para elegir el navegador de archivos para seleccionar el archivo

Cómo usar el bash para solicitar al usuario que elija “finalizar acción con” para elegir la aplicación para seleccionar el archivo (suponiendo que haya una aplicación para navegar por el archivo en el dispositivo)

Quiero filtrar el archivo usando una extensión … (por ejemplo: * .sav, * .props)

Gracias de antemano

Puedes usar algo como esto:

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

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/

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(); } } 

Puede ayudarle a elegir un archivo de doc y 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); } 

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

 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); }