Select File from file manager via Intent

2020-07-06 03:42发布

问题:

What I wanna do:

I wanna get the path as a String of a file, which I choose via an Android File Manager.

What I have:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(Intent.createChooser(intent, "Open with ..."), FILE_SELECT_CODE);

This code, works nearly fine for me, but there is one problem. I can only select my file with the following apps:

My Question:

Does anyone have a working code for choosing any file via the Android File Manager?

回答1:

Use this:

    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType("*/*"); 
    startActivityForResult(intent, REQUEST_CODE);

For samsung devices to open file manager use this:

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

For more reference checkout http://developer.android.com/guide/topics/providers/document-provider.html



回答2:

So for my Samsung device this worked:

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