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 [user 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
任何帮助表示赞赏