gpt4 book ai didi

Android Q (10) 请求访问所有存储的权限。分区存储

转载 作者:行者123 更新时间:2023-11-29 02:19:18 25 4
gpt4 key购买 nike

在 Android 10 中,需要访问存储的应用需要请求访问具体路径的权限。但是像文件浏览器这样的应用程序可以请求访问根存储的权限并获得读取/写入所有存储的权限。这就是我想要做的。

根据 Android,我们必须为此使用 ACTION_OPEN_DOCUMENT_TREE。我遇到的问题是一切似乎都是正确的,但未向该应用授予权限。

  private void askAndroid10Perm()
{
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
intent.addFlags(
Intent.FLAG_GRANT_READ_URI_PERMISSION
| Intent.FLAG_GRANT_WRITE_URI_PERMISSION
| Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
| Intent.FLAG_GRANT_PREFIX_URI_PERMISSION);
startActivityForResult(intent, REQUEST_CODE_OPEN_DOCUMENT_TREE);
}

在这里,用户可以看到 Android 文件树,并选择主存储,单击以授予权限。 “它将允许 - 应用程序名称 - 可以完全访问当前存储在此位置下的所有文件,以及存储在这里的任何 future 内容”-> 允许

然后:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQUEST_CODE_OPEN_DOCUMENT_TREE:
if (resultCode == Activity.RESULT_OK) {
Uri treeUri = data.getData();
int takeFlags = data.getFlags();
takeFlags &= (Intent.FLAG_GRANT_READ_URI_PERMISSION |
Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

Log.i("TAG", "takePersistableUriPermission: " + treeUri);
this.getContentResolver().takePersistableUriPermission(treeUri, takeFlags);

}

}
}
}

日志:

takePersistableUriPermission: content://com.android.externalstorage.documents/tree/primary%3A

那么应用程序仍然没有权限访问root。

open failed: EACCES (Permission denied)

我当然有:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

由用户授予。

最佳答案

在 list 中添加行

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:requestLegacyExternalStorage="true" //Add this Line
android:label="@string/app_name">

---------<Activity, Sevices or Recivers>----------

</application>

关于Android Q (10) 请求访问所有存储的权限。分区存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57449242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com