DocumentFile pickedDir = DocumentFile.fromTreeUri(this, "content://com.android.externalstorage.documents/tree/downloads");
grantUriPermission(<packagename>, "content://com.android.externalstorage.documents/tree/downloads", Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
getContentResolver().takePersistableUriPermission(Uri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
DocumentFile file = pickedDir.createFile(".csv", "xyz.csv");
Above code was working until P. From Android Q onwards, I am facing below issue:
UID XXXXX does not have permission to content://com.android.externalstorage.documents/tree/downloads [user 0]; you could obtain access using ACTION_OPEN_DOCUMENT or related APIs
Manifest already has:
<uses-permission android:name = "android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name = "android.permission.WRITE_EXTERNAL_STORAGE" />
Version:
minSdkVersion 26
targetSdkVersion 26
compileSdkVersion 26
Any help is appreciated