Android 13 中的存储权限不起作用

问题描述 投票:0回答:1

在我的flutter项目中,我需要设备存储权限才能下载pdf。但在Android 13中,应用程序权限设置中,没有出现存储权限。

我已使用这些权限

..android/app/src/main/AndroidManifest.xml
,如下所示。

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

这是获取用户权限的代码

Future<bool> requestStoragePermission(Permission permission) async {
    AndroidDeviceInfo deviceInfo = await DeviceInfoPlugin().androidInfo;
    if (deviceInfo.version.sdkInt >= 30) {
      var status = 
          await Permission.manageExternalStorage.request().isGranted;
      if (!status) {
        await openAppSettings();
      }
      return status;
    } else {
      if (await permission.isGranted) {
        return true;
      } else {
        var status = await permission.request();
        return status.isGranted;
      }
    }
  }

无法显示

Permission is denied
消息和调试结果
No permissions found in manifest for: []22

android flutter user-permissions
1个回答
0
投票

我相信当您的目标是Android 13或更高版本时,您需要获得媒体文件权限而不是

READ_EXTERNAL_STORAGE

当您的应用在 Android 13 设备中运行时,Android 清单中提到的

READ_EXTERNAL_STORAGE
权限将被忽略,如本文所述。相反,从 Android 13 开始引入了三个新权限。

  1. 读取媒体图像
  2. 阅读媒体视频
  3. 读取媒体音频。

如果您使用

READ_EXTERNAL_STORAGE
来访问文件,那么您需要使用适用于 Android 13 及更高版本的这些新权限之一。

我建议您从以下文章中获得更多见解。

WRITE_EXTERNAL_STORAGE
类似。您可以查看以下来自Android的文章,它清楚地解释了与存储相关的权限

希望这能让您对 Android 权限模型有更广泛的了解。

© www.soinside.com 2019 - 2024. All rights reserved.