J'essaie d'obtenir l'autorisation de stockage dans la fonction initstate ()
de la classe J'ai utilisé deux packages - Simple_Permissions
et Permission
package . Mais les deux me donnent la même erreur.
FYI - J'ai déjà mis l'autorisation dans le manifeste.
"E / SimplePermission (6405): défini pour ne plus jamais demander android.permission.WRITE_EXTERNAL_STORAGE I / SimplePermission (6405): Demande de statut d'autorisation: 4 I / flutter (6405): le résultat de la demande d'autorisation est PermissionStatus.deniedNeverAsk "
Ce que j'ai compris de cela, c'est que cette erreur devrait survenir si l'autorisation a été définie sur "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é:
Aussi:
Je demande 2 autorisations dans mon application, une pour l'emplacement et l'autre pour l'écriture du stockage.
Lorsque je vais dans les paramètres -> applications installées -> autorisations -> , JE PEUX voir l'autorisation de localisation et je peux l'activer / la désactiver. Mais JE NE PEUX PAS voir l'autorisation de stockage.
3 Réponses :
Avez-vous ajouté le code ci-dessous au fichier manifeste Android?
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
Cela peut se produire car un autre plugin définit l'attribut android: maxSdkVersion sur votre déclaration WRITE_EXTERNAL_STORAGE dans le fichier 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ésolu le problème pour moi.
Un autre moyen d'accéder au stockage à l'aide du package permission_handler
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 }
Extrait de code
status.isUndetermined est utilisé pour déterminer si nous avions déjà demandé la permission ou non.
dependencies: permission_handler: ^5.0.1
Remarque: N'oubliez pas d'ajouter l'autorisation dans AndroidMenifest pour Android et info.plist pour iOS.
Je vois le même problème avec le package de flutter multi_image_picker. L'autorisation de la caméra est accordée OK, le stockage de lecture est accordé OK, le stockage en écriture est refusé sans raison apparente, même si je touche Autoriser sur tout. Il doit y avoir quelque chose de bizarre avec l'autorisation Flutter et Write Storage.