Si l'application prend en charge l'accès en écriture à la section de stockage flash interne /sdcard
lorsqu'elle a déjà l'autorisation WRITE_EXTERNAL_STORAGE
. Pour des raisons historiques, cette autorisation contient le terme EXTERNAL
dans son nom, même si elle est principalement utilisée sur les appareils Android avant la version 10 pour obtenir l'accès à la mémoire flash interne partagée.
Cependant, même si une application dispose de l'autorisation WRITE_EXTERNAL_STORAGE
, elle n'obtient pas automatiquement un accès en écriture à la carte SD physique. Pour obtenir un accès en écriture, l'utilisateur doit "confirmer" qu'il souhaite donner accès à la carte SD externe. Malheureusement, ce processus n'est pas bien documenté et très peu intuitif, même pour les personnes familiarisées avec la technologie :
Si une application souhaite effectuer une commande d'écriture sur une carte SD physique, l'application de gestion des fichiers système s'ouvre (je ne suis pas certain si l'application doit explicitement démarrer cette étape d'octroi de permission ou si Android le fait automatiquement). Dans cette application de gestion des fichiers ouverte, vous devez sélectionner le dossier racine de la carte SD physique, puis sélectionner le bouton "ouvrir" (ou "sélectionner" ?) dans l'application de gestion des fichiers. Si vous le faites, l'application de gestion des fichiers se ferme et Android revient à l'application que vous souhaitez utiliser pour l'écriture sur la carte SD. Maintenant, l'application devrait avoir accès en écriture à la carte SD s'il n'y a pas d'autres obstacles :
Personnellement, j'ai un appareil Android 9 que j'ai beaucoup utilisé avec une carte SD physique, formatée en tant que périphérique portable. D'après mon expérience, il y a un facteur que vous n'avez pas pris en compte : le système de fichiers utilisé sur la carte SD. Les cartes SD de plus de 64 Go sont généralement pré-formatées avec le système de fichiers exFAT
. Ce système de fichiers est officiellement pris en charge par Android depuis Android 13. Cependant, de nombreux fabricants ont mis en œuvre la prise en charge de exFAT dans des versions antérieures. Mon expérience personnelle avec ma tablette Lenovo Android 9 était que cette prise en charge implémentée par le fabricant était souvent non fonctionnelle en ce qui concerne l'accès en écriture. Dans certaines versions du firmware, cela fonctionnait, dans d'autres non.
Un autre obstacle possible concerne les fichiers et dossiers pour lesquels le drapeau "lecture seule" est activé. Avec ce drapeau activé (par exemple, parce que les fichiers ont été extraits d'un fichier ZIP, TAR, ou de toute autre archive), Android refuse de les renommer ou de les supprimer. Seules quelques applications sont capables de réinitialiser l'attribut lecture seule sur Android.