当我在最新的 android 11 上从文件选择器中选择文档时无法 pic 文档

问题描述

Not able to pick a document from this specific option. Please have look I use the below code for it. I have created one class that processes and gives me a file path.Everythings works fine if I select from image,audio,video and download but not works as I select media from document

 XXPermissions.with(this)
                    .permission(Permission.MANAGE_EXTERNAL_STORAGE)
                    .permission(Permission.CAMERA)
                    .request(new OnPermissionCallback() {
                        @Override
                        public void onGranted(List<String> permissions,boolean all) {
                            Intent chooseFile = new Intent(Intent.ACTION_OPEN_DOCUMENT);
                            chooseFile.addCategory(Intent.CATEGORY_OPENABLE);
                            chooseFile.setType("*/*");
                            chooseFile.putExtra(Intent.EXTRA_LOCAL_ONLY,true);
                            chooseFile = Intent.createChooser(chooseFile,"Choose a file");
                            startActivityForResult(chooseFile,1001);
                        }
                    });


 @Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
    switch (requestCode) {
        case 1001:
            if (resultCode == RESULT_OK) {
                Log.e("FILE","" + data.getData());
                Uri uri = data.getData();
                String uriString = uri.toString();
                File myFile = new File(uriString);
                File file = FileUtils.getFile(activity,uri);
                String displayName = null;

                if (uriString.startsWith("content://")) {
                    Cursor cursor = null;
                    try {
                        cursor = getContentResolver().query(uri,null,null);
                        if (cursor != null && cursor.movetoFirst()) {
                            displayName = cursor.getString(cursor.getColumnIndex(OpenableColumns.disPLAY_NAME));
                        }
                    } finally {
                        cursor.close();
                    }
                } else if (uriString.startsWith("file://")) {
                    displayName = myFile.getName();
                }

                uploadFiletoAWS(file.getPath(),ext);
            }
            break;
    }

    super.onActivityResult(requestCode,resultCode,data);
}

if (isMediaDocument(uri)) {
            final String docId = DocumentsContract.getDocumentId(uri);
            final String[] split = docId.split(":");
            final String type = split[0];
            Log.e("TYPE","" + type);
            Uri contentUri;
            if ("image".equals(type)) {
                contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
            } else if ("video".equals(type)) {
                contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
            } else if ("audio".equals(type)) {
                contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
            } else {
                contentUri = MediaStore.getDocumentUri(context,uri);
            }
            selection = "_id=?";
            selectionArgs = new String[]{split[1]};
            return getDataColumn(context,contentUri,selection,selectionArgs);
        }

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)