0 votes

Permission d'écriture sur la carte SD externe pour une ancienne application

J'ai un téléphone Samsung Galaxy A50 avec Android 9 (je ne veux pas mettre à jour! La mise à jour n'est pas le sujet de cette question!) et une ancienne application de gestion de fichiers d'une grande valeur (non construite par moi) qui fonctionne très bien sauf qu'elle ne peut pas écrire sur la carte SD externe insérée dans le téléphone. Une application intégrée fournie avec le téléphone peut écrire sur la carte SD externe.

En revanche, le même modèle de téléphone avec Android 11 permet à cette même application d'écrire sur la carte SD externe en utilisant le même point de montage (/stockage/IDENTIFIANT-SD-CARD-ALPHANUMÉRIQUE).

J'ai lu que l'application doit demander l'autorisation WRITE_EXTERNAL_STORAGE et cela nécessite un accès au code source. Cette application n'a pas été construite par moi, donc je ne peux pas la modifier.

  • Cela signifie-t-il que ce comportement a été corrigé dans Android 11?
  • Y a-t-il peut-être des paramètres cachés pour activer l'accès en écriture à la carte SD externe?

1voto

pr0nin Points 353

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.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X