Required PermissionWRITE_EXTERNAL_STORAGE & READ_EXTERNAL_STORAGE.
gradle
//maven { url 'https://jitpack.io' }
implementation 'com.github.gzeinnumer:EasyExternalDirectoryAndroid:2.2.0'
implementation 'com.github.gzeinnumer:BaseUtils:1.1.0'MainActivity.java
privatestaticfinalintMY_RESULT_CODE_FILECHOOSER = 2000;
privatevoidfileChosser() {
IntentchooseFileIntent = newIntent(Intent.ACTION_GET_CONTENT);
chooseFileIntent.setType("*/*");
// Only return URIs that can be opened with ContentResolverchooseFileIntent.addCategory(Intent.CATEGORY_OPENABLE);
chooseFileIntent = Intent.createChooser(chooseFileIntent, "Choose a file");
startActivityForResult(chooseFileIntent, MY_RESULT_CODE_FILECHOOSER);
}
@OverridepublicvoidonActivityResult(intrequestCode, intresultCode, Intentdata) {
if (requestCode == MY_RESULT_CODE_FILECHOOSER) {
if (resultCode == Activity.RESULT_OK) {
if (data != null) {
UrifileUri = data.getData();
StringfilePath = null;
try {
filePath = MBUtilsString.getPath(getApplicationContext(), fileUri);
if (validateFileSize(filePath)) {
StringfileName = MBUtilsString.getNameFromUrl(filePath);
Stringpath = filePath;
((TextView) findViewById(R.id.path)).setText("File Name :\n"+fileName+"\n\n File Path :\n"+path);
} else {
Toast.makeText(this, "Ukuran file melebihi 20 MB", Toast.LENGTH_SHORT).show();
}
} catch (Exceptione) {
Toast.makeText(getApplicationContext(), "Error: " + e, Toast.LENGTH_SHORT).show();
}
}
}
}
super.onActivityResult(requestCode, resultCode, data);
}
//return false if file size more than 20 mBpublicbooleanvalidateFileSize(Stringpath) {
Filefile = newFile(path);
longfileSizeInBytes = file.length();
longfileSizeInKB = fileSizeInBytes / 1024;
longfileSizeInMB = fileSizeInKB / 1024;
returnfileSizeInMB <= 20;
}Copyright 2021 M. Fadli Zein