相关疑难解决方法(0)

Android 13 - READ_EXTERNAL_STORAGE_PERMISSION 仍然可用

Android 13 的行为更改提到了这一点:

如果您的应用面向 Android 13,则必须请求一项或多项新权限,而不是 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 权限。

https://developer.android.com/about/versions/13/behavior-changes-13#capsular-media-permissions

新的权限是:

  • 图片和照片:READ_MEDIA_IMAGES
  • 视频:READ_MEDIA_VIDEO 音频
  • 音频文件:READ_MEDIA_AUDIO

但是,如果我需要从任意文件夹读取 PDF 文件,该如何处理?没有像 READ_MEDIA_DOCUMENT 之类的权限。那么除图像、视频或音频之外的其他文件类型呢?我仍然可以对它们使用 READ_EXTERNAL_STORAGE 权限吗?

我在官方文档中没有找到有关此内容的任何信息,但说实话,该文档仅关注媒体文件,没有任何有关其他文件类型的信息(https://developer.android.com/about/versions/13/行为更改13#细粒度媒体权限)。

我也不确定除视频、图像和音频之外的其他文档类型的 WRITE_EXTERNAL_STORAGE 权限。

android android-permissions android-13

73
推荐指数
2
解决办法
11万
查看次数

PermissionAndroid.request() 总是返回 never_ask_again 且没有任何提示。反应本机

我已经尝试了大多数问题的结果,但没有一个对我有用。我尝试使用 PermissionAndroid.request 方法访问 WRITE_EXTERNAL_STORAGE 权限,但它总是返回 never_ask_again 作为结果。

我的请求文件:

try {
        const granted = await PermissionsAndroid.request(
          PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
          {
            title: 'External Storage Write Permission',
            message: 'App needs write permission',
          },
        );

        console.log(granted);
        if (granted === PermissionsAndroid.RESULTS.GRANTED) {
          // Start downloading
          downloadFile();
          console.log('Storage Permission Granted.');
        } else {
          // If permission denied then show alert
          Alert.alert('Error', 'Storage Permission Not Granted');
        }
      } catch (err) {
        // To handle permission related exception
        console.log('++++' + err);
      }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的 AndroidManifest.xml 文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
  <uses-permission android:name="android.permission.INTERNET" …
Run Code Online (Sandbox Code Playgroud)

android android-external-storage react-native react-native-permissions

8
推荐指数
1
解决办法
5110
查看次数

如何使用 Flutter (Dart) 在 android 13 (API 33) 上保存文件

文件不仅仅是媒体文件。它也可能是.pdf、.zip、.xls 等。

API 33 上的外部存储权限被永久拒绝。
因此,我们无法像这样的方法进行保存 ->

String path = 'This is external storage path';
File(path).writeAsBytes(bytes) 
Run Code Online (Sandbox Code Playgroud)

我的应用程序在 android 11、10、9 等上运行良好。我已经在 AndroidManifest.xml 上设置了存储权限,但它在 android 13 上不起作用。
那么,如何在 android 13 上的外部存储中保存文件?
我知道一种在 AndroidManifest.xml 上设置MANAGE_EXTERNAL_STORAGE 的方法。但它受到 PlayStore 的限制。所以,这对我们来说不太好。

那么,在 Android 13 的外部存储上保存文件的最佳方式是什么?

我看过这个讨论

storage dart android-permissions android-external-storage flutter

5
推荐指数
1
解决办法
5668
查看次数

C# .Net 7 Maui 中的 Android API 33 存储权限被拒绝

我试图让应用程序用户选择一个文件夹来保存从相机拍摄的照片。如果我需要使用与我正在使用的不同的 NuGet 包或内置功能,我可以这样做。我使用的是我发现的第一个有文件夹选择器并且我可以开始工作的。

我阅读了数十篇文章、答案、问题、技术文档、演练、观看视频等,尝试访问并选择要保存相机图像的文件夹。不幸的是,似乎没有任何效果,因为我不断收到异常,说我没有“存储”权限,尽管我已经尝试了多种方法来获取它们。我还请求几乎所有与“存储”相关的权限,甚至是我认为不是真正权限的权限,但在我读过的其中一份文档中引用了它。

这适用于运行 Android 9 (API 28) 和 Android 12 (API 31) 的 2 台真实设备,但不适用于 Android 13 (API 33) 设备。我正在为FolderPicker使用最新的CommunityToolkit NuGet 包。

查看专门针对该应用程序的权限,“拒绝”部分中没有列出任何权限。

我知道这与我检查权限的自定义方式无关,因为我使用它来请求蓝牙和其他权限

靠近底部的“FolderPickerResult”代码行返回异常。它不会抛出它,而是将其返回到“结果”对象/变量。异常消息是“未授予存储权限”。

这是返回的整个对象:

{
    FolderPickerResult {
        Folder = ,
        Exception = Microsoft.Maui.ApplicationModel.PermissionException: Storage permission is not granted.at CommunityToolkit.Maui.Storage.FolderPickerImplementation.InternalPickAsync(String initialPath, CancellationToken cancellationToken)in / _ / src / CommunityToolkit.Maui.Core / Essentials / FolderPicker / FolderPickerImplementation.android.cs: line 18 at CommunityToolkit.Maui.Storage.FolderPickerImplementation.PickAsync(String initialPath, CancellationToken cancellationToken)in / _ / src / CommunityToolkit.Maui.Core / Essentials / FolderPicker / FolderPickerImplementation.shared.cs: …
Run Code Online (Sandbox Code Playgroud)

c# android maui

5
推荐指数
1
解决办法
2860
查看次数