0
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

どんな助けでも大歓迎です

4

1 に答える 1