Can anyone please share complete solution for File Picker in Android 11 for both Internal and External Storage
Asked
Active
Viewed 5,491 times
1
-
try this : https://github.com/anggrayudi/SimpleStorage – Vishal Thakkar Sep 20 '21 at 06:48
2 Answers
0
**For Single File**
// Request code for selecting a PDF document.
const val PICK_PDF_FILE = 2
fun openFile(pickerInitialUri: Uri) {
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
addCategory(Intent.CATEGORY_OPENABLE)
type = "application/pdf"
-
As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers [in the help center](/help/how-to-ask). – Community Sep 20 '21 at 07:06
0
Here Code For Android 11 File Upload using Intent and also you dont have to mention MANAGE_EXTERNAL_STORAGE Permission in AndroidManifest.xml file i have implemented without this permission.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
Intent chooseFile = new Intent(Intent.ACTION_GET_CONTENT);
chooseFile.setType("application/pdf");
chooseFile = Intent.createChooser(chooseFile, "Choose a file");
startActivityForResult(chooseFile, Constants.REQUEST_PICK_FILE);
}else{
String[] types = new String[]{"pdf"};
FilePickerBuilder.getInstance().setMaxCount(UPLOAD_LIMIT - attachmentModelList.size())
.setActivityTheme(R.style.AppTheme)
.setActivityTitle(mActivity.getString(R.string.select_documents))
/*.sortDocumentsBy(SortingTypes.NAME)*/
.enableDocSupport(false)
.addFileSupport("PDF", types)
/*.setSelectedFiles(masterList !!)*/
.pickFile(this);
}
here is onActivityResult Code Pick File Name and other information
if (requestCode == Constants.REQUEST_PICK_FILE &&
resultCode == Activity.RESULT_OK) {
Uri uri = data.getData();
String mimeType = getActivity().getContentResolver().getType(uri);
String filename;
if (mimeType == null) {
String path = CommonMethod.getPath(getActivity(), uri);
// if (path == null) {
// filename = FilenameUtils.getName(uri.toString());
// } else {
File file = new File(path);
filename = file.getName();
// }
} else {
Uri returnUri = data.getData();
Cursor returnCursor = getActivity().getContentResolver().query(returnUri, null, null, null, null);
int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
int sizeIndex = returnCursor.getColumnIndex(OpenableColumns.SIZE);
returnCursor.moveToFirst();
filename = returnCursor.getString(nameIndex);
String size = Long.toString(returnCursor.getLong(sizeIndex));
}
File fileSave = getActivity().getExternalFilesDir(null);
String sourcePath = getActivity().getExternalFilesDir(null).toString();
File targetFile = null;
try {
targetFile = new File(sourcePath + "/" + filename);
boolean success = CommonMethod.copyFileStream(new File(sourcePath + "/" + filename), uri, getActivity());
} catch (Exception e) {
e.printStackTrace();
}
if (targetFile != null) {
String fileName = Utils.getFileName(getActivity(),Uri.fromFile(targetFile));
String filePath = targetFile.getPath();
}

Jaspalsinh Gohil
- 941
- 1
- 9
- 20