How to use native android file-open-dialog?
You can use the intent ACTION_GET_CONTENT with the MIME type */*
.
It will return the URI in onActivityResult()
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent()
.setType("*/*")
.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select a file"), 123);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 123 && resultCode == RESULT_OK) {
Uri selectedfile = data.getData(); //The uri with the location of the file
}
}
That appears to be the system UI for the Storage Access Framework. You would use ACTION_OPEN_DOCUMENT
to allow the user to open an existing document, or ACTION_CREATE_DOCUMENT
to allow the user to create a new document.
However, this is not a file UI. It is a content UI. The user can browse things that are not locally stored — in the screenshot, the user can browse their Google Drive and One Drive areas. And, what you get is a Uri
pointing to content, not a file path.