Pick any kind of file via an Intent in Android Pick any kind of file via an Intent in Android android android

Pick any kind of file via an Intent in Android


Not for camera but for other files..

In my device I have ES File Explorer installed and This simply thing works in my case..

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


Samsung file explorer needs not only custom action (com.sec.android.app.myfiles.PICK_DATA),but also category part (Intent.CATEGORY_DEFAULT) and mime-type should be passed as extra.

Intent intent = new Intent("com.sec.android.app.myfiles.PICK_DATA");intent.putExtra("CONTENT_TYPE", "*/*");intent.addCategory(Intent.CATEGORY_DEFAULT);

You can also use this action for opening multiple files: com.sec.android.app.myfiles.PICK_DATA_MULTIPLEAnyway here is my solution which works on Samsung and other devices:

public void openFile(String mimeType) {        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);        intent.setType(mimeType);        intent.addCategory(Intent.CATEGORY_OPENABLE);        // special intent for Samsung file manager        Intent sIntent = new Intent("com.sec.android.app.myfiles.PICK_DATA");         // if you want any file type, you can skip next line         sIntent.putExtra("CONTENT_TYPE", mimeType);         sIntent.addCategory(Intent.CATEGORY_DEFAULT);        Intent chooserIntent;        if (getPackageManager().resolveActivity(sIntent, 0) != null){            // it is device with Samsung file manager            chooserIntent = Intent.createChooser(sIntent, "Open file");            chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { intent});        } else {            chooserIntent = Intent.createChooser(intent, "Open file");        }        try {            startActivityForResult(chooserIntent, CHOOSE_FILE_REQUESTCODE);        } catch (android.content.ActivityNotFoundException ex) {            Toast.makeText(getApplicationContext(), "No suitable File Manager was found.", Toast.LENGTH_SHORT).show();        }    }

This solution works well for me, and maybe will be useful for someone else.


this work for me on galaxy noteits showcontacts,file managers installed on device,gallery,music player

private void openFile(Int  CODE) {    Intent i = new Intent(Intent.ACTION_GET_CONTENT);    i.setType("*/*");    startActivityForResult(intent, CODE);}

here get path in onActivityResult of activity.

protected void onActivityResult(int requestCode, int resultCode, Intent data) {     String Fpath = data.getDataString();    // do somthing...    super.onActivityResult(requestCode, resultCode, data);}