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");
上記のコードは P まで機能していました。Android Q 以降では、以下の問題に直面しています。
UID XXXXX には content://com.android.externalstorage.documents/tree/downloads [ユーザー 0] へのアクセス許可がありません。ACTION_OPEN_DOCUMENT または関連する API を使用してアクセスを取得できます
マニフェストには次のものがあります。
<uses-permission android:name = "android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name = "android.permission.WRITE_EXTERNAL_STORAGE" />
バージョン:
minSdkVersion 26
targetSdkVersion 26
compileSdkVersion 26
どんな助けでも大歓迎です