Maison >Java >javaDidacticiel >Comment surmonter les problèmes de création d'annuaire sous Android 10 et versions ultérieures ?

Comment surmonter les problèmes de création d'annuaire sous Android 10 et versions ultérieures ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-06 09:42:12501parcourir

How to Overcome Directory Creation Issues in Android 10 and Above?

Impossible de créer des répertoires sous Android 10 : solutions et solutions de contournement

Introduction

Sous Android 10 et versions ultérieures, les développeurs peuvent rencontrer des difficultés pour créer des répertoires dans des emplacements de stockage externes. Cet article explique la raison de ce problème et propose des solutions et solutions potentielles.

Description du problème

Android 10 et les versions ultérieures ont restreint l'accès à des emplacements arbitraires sur le stockage externe. Par conséquent, les méthodes traditionnelles de création de répertoires à l'aide de File.mkdir() ou Files.createDirectory() peuvent échouer avec AccessDeniedException.

Cause

Cette restriction est due à Mesures de confidentialité améliorées d'Android, qui visent à empêcher les applications d'accéder aux données utilisateur sensibles sans l'autorisation explicite de l'utilisateur.

Solutions et Solutions de contournement

Les développeurs disposent de plusieurs options pour résoudre ce problème :

Activation du modèle de stockage hérité

  • Ajouter Android :requestLegacyExternalStorage= "vrai" à la valeur élément dans le manifeste. Cela permet à l'application de continuer à utiliser les anciennes autorisations de stockage externe. Cependant, cette option n'est disponible que pour Android 10 et 11.

Utilisation de répertoires contextuels

  • Utilisez des méthodes telles que getExternalFilesDir() pour accéder répertoires sur le stockage externe sur lesquels l'application est autorisée à écrire. Aucune autorisation supplémentaire n’est requise pour cette approche. Cependant, les données stockées dans ces répertoires sont supprimées lorsque l'application est désinstallée.

Utilisation de Storage Access Framework (SAF)

  • Utilisez SAF pour demander autorisation de l'utilisateur pour accéder et gérer des fichiers et des répertoires spécifiques. Cette méthode offre un meilleur contrôle sur l'accès aux fichiers mais nécessite des autorisations supplémentaires et une interaction de l'utilisateur.

Stockage multimédia

  • Si le contenu à stocker est un média -en rapport, envisagez d'utiliser MediaStore pour le placer dans des emplacements multimédias standard. Cette approche garantit une bonne organisation et une bonne accessibilité dans la médiathèque de l'appareil.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn