7 votes

Permission de stockage dans Flutter

J'essaie d'obtenir une autorisation de stockage dans le initstate() de la classe. J'ai utilisé deux packages - Simple_Permissions y Permission paquet. Mais les deux me donnent la même erreur.

FYI - J'ai déjà mis la permission dans le manifeste.

"E/SimplePermission( 6405) : réglé pour ne plus jamais demanderandroid.permission.WRITE_EXTERNAL_STORAGE I/SimplePermission( 6405) : Statut de la permission demandée : 4 I/SimplePermission( 6405) : le résultat de la demande de permission est PermissionStatus.deniedNeverAsk "

Ce que j'ai compris, c'est que cette erreur devrait se produire si la permission a été définie comme "ne plus jamais demander" par l'utilisateur. Mais c'est la première fois que je demande une autorisation de stockage dans mon application.

Ce que j'ai essayé :

  1. Désinstaller et réinstaller l'application.
  2. Utilisation de 2 paquets de permission différents
  3. Exécution de l'application sur différentes versions d'Android, différents émulateurs.

Aussi :
Je demande 2 permissions dans mon application, une pour la localisation et l'autre pour le stockage en écriture.

Quand je vais au paramètres --> applications installées --> permissions --> Je PEUX voir l'autorisation de localisation et je peux l'activer ou la désactiver. Mais je ne peux pas voir l'autorisation pour le stockage.

4voto

Keerti Purswani Points 997

Avez-vous ajouté le code ci-dessous au fichier manifeste Android ?

uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"

1voto

jitesh mohite Points 3119

Une autre façon d'accéder au stockage en utilisant permission_handler paquet

dependencies:
  permission_handler: ^5.0.1

Extrait de code

status.isUndetermined est utilisé pour déterminer si nous avons déjà demandé la permission ou non.

          var status = await Permission.storage.status;
           if (status.isUndetermined) {
                // You can request multiple permissions at once.
                Map<Permission, PermissionStatus> statuses = await [
                  Permission.storage,
                  Permission.camera,
                ].request();
                print(statuses[Permission.storage]); // it should print PermissionStatus.granted
              }

Note : N'oubliez pas d'ajouter la permission dans AndroidMenifest pour Android et info.plist pour iOS.

0voto

Anton Cherkashyn Points 2053

Cela peut être dû au fait qu'un autre plugin définit l'attribut Android:maxSdkVersion sur votre déclaration WRITE_EXTERNAL_STORAGE dans AndroidManifest.xml. Essayez de remplacer la ligne dans AndroidManifest.xml par :

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:remove="android:maxSdkVersion"/>

Cela a réglé le problème pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X