Adaptation du stockage Android 11 Édition Lite

J'ai lu de nombreux articles sur Internet qui s'adaptent à Android 11, et j'estime qu'ils sont trop compliqués, alors j'énumère brièvement quelques changements de stockage dans la version Android 11.

1. Comme les autres versions, ces deux répertoires sont des répertoires privés de l'application et aucune autorisation n'est requise pour lire et écrire.

/ data / data / package

/ sdcard / Android / data / package

 

2 . Lecture / création / suppression de stockage externe du multimédia catalogues tels que des images, vidéo, audio, télécharger des fichiers, des documents et ainsi de suite. Il est recommandé de demander de manière dynamique l'autorisation READ_EXTERNAL_STORAGE (il s'agit de l'autorisation de lecture, si vous ne l'appliquez pas, les fichiers en lecture seule incluent les fichiers créés par l' application elle - même , et vous pouvez créer / supprimer des fichiers multimédias sans demander aucune autorisation) , et vous pouvez y accéder via MediaStore.

 * Remarque 1. Vous ne pouvez pas supprimer les fichiers créés par d'autres applications (le système enregistrera quel fichier est généré par votre application). Si vous souhaitez supprimer des fichiers écrits par d'autres applications, une boîte de dialogue apparaîtra à l'utilisateur à chaque fois que vous supprimez leur.

                 2. Les fichiers multimédias sont placés dans un répertoire privé, et le système ne peut pas les scanner, et ils n'apparaîtront pas dans l'album.C'est la même chose que l'ancienne version du système.

                 3. L'autorisation READ_EXTERNAL_STORAGE ne peut accéder qu'aux fichiers multimédias stockés en externe , et les autres types de fichiers ne sont pas accessibles.

                 4. Si vous souhaitez que les informations sur le lieu de prise de vue soient stockées dans l'image, vous avez besoin d' ExifInterface pour les lire.ACCESS_MEDIA_LOCATION权限,使用

 

3. Fichiers d' écriture / suppression de stockage externe  (tous les fichiers de la carte SD, y compris les fichiers multimédias, y compris les répertoires privés d'autres applications), vous devez demander une nouvelle autorisation, l'autorisation d'écriture est supprimée dans le nouveau système, vous devez accéder manuellement à Ouvrez dans les paramètres de l'application (cette fois ce n'est pas une fenêtre pop-up).

<uses-permission android: name = "android.permission.MANAGE_EXTERNAL_STORAGE" />

Méthode ouverte: // la version doit être jugée lors de l'utilisation, car le système de version basse n'a pas cette autorisation

val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
                intent.data = Uri.parse("package:" + context!!.packageName)
                startActivityForResult(intent, 3)

 

4. Il n'est pas nécessaire de disposer d' autorisations de lecture ou d'écriture pour sélectionner un fichier via le sélecteur de fichiers. L' utilisateur est guidé pour sélectionner le fichier et l'application accepte la méthode de rappel. Le sélecteur de fichiers doit être le framework SAF fourni avec Android. système , pas le genre de sélecteur open source ou personnalisé!

Le sélecteur de fichiers peut non seulement lire des fichiers, mais aussi créer des fichiers. Ces opérations nécessitent la coopération de l'utilisateur pour terminer, pas en silence! (Alors peut-être que l'expérience utilisateur n'est pas bonne, l'avantage est qu'aucune autorisation n'est requise)

 

5. Mise à niveau de l'application et migration de version 

Application qui a été installée sur la version 11 (installée avant la version 11 et la version du système a été mise à niveau). La cible de l'ancienne version de l'application est inférieure à 30. Après la mise à niveau, elle est 30. Ajoutez l'indicateur preserveLegacyExternalStorage. L'application peut également lire et écrire à la manière du stockage hérité.

S'il s'agit d'une application nouvellement installée sur la version 11 , même s'il y a preserveLegacyExternalStorage, cela ne fonctionnera pas!

 

Cet article présente une présentation générale du stockage. Pour des opérations de code spécifiques, veuillez consulter le blog suivant:

https://developer.android.google.cn/training/data-storage/shared/media#java

https://www.jianshu.com/p/4d74b719309f

https://www.jianshu.com/p/e94cea26e213

 

Je suppose que tu aimes

Origine blog.csdn.net/gue8848/article/details/115277730
conseillé
Classement