French OsmDroid et DirRootExternal

BW17

Member
Licensed User
Longtime User
Bonjour,

J'ai une application qui utilise depuis des années OSMDroid pour l'affichage de cartes offline.
OSMDroid utilise le dossier "osmdroid" à la racine du stockage du téléphone.
Pour placer mes archives de tuiles pour l'affichage offline, j'utilisais donc ce dossier avec file.DirRootExternal et les autorisations qi vont bien.
Or depuis peu, GooglePlay m'indique ceci :

Nous avons détecté l'indicateur requestLegacyExternalStorage dans le fichier manifeste d'un ou plusieurs des app bundles ou des APK de votre application.
Les développeurs dont les applications sont exécutées sur Android 11 ou version ultérieure doivent avoir recours à l'espace de stockage cloisonné pour que les utilisateurs puissent mieux contrôler l'accès à l'espace de stockage de leur appareil. À compter du 5 mai, pour proposer votre application sous Android 11 ou version ultérieure, vous devrez suivre l'une des procédures ci-dessous :

  • Mettre à jour votre application afin de suivre des bonnes pratiques plus respectueuses de la confidentialité, par exemple grâce aux API Storage Access Framework ou Media Store
  • Mettre à jour votre application pour déclarer l'autorisation d'accès à tous les fichiers (MANAGE_EXTERNAL_STORAGE) dans le fichier manifeste, et remplir la déclaration d'autorisation d'accès à tous les fichiers dans la Play Console à partir du 5 mai
  • Supprimer l'autorisation d'accès à tous les fichiers de votre application
Pour les applications ciblant Android 11, l'indicateur requestLegacyExternalStorage sera ignoré. Vous devez utiliser l'autorisation d'accès à tous les fichiers pour conserver un accès étendu.
Les applications qui demandent d'accéder à l'autorisation d'accès à tous les fichiers alors que cela ne leur est pas permis seront supprimées de Google Play, et vous ne pourrez pas les mettre à jour.


J'avais essayé à plusieurs reprise de placer mes tuiles dans un autre dossier du file.Internal mais cela ne fonctionne pas...

Voici ce que j'utilise pour mon tilesource :

Dim CurrentTilesSources As List
CurrentTilesSources=Carte1.GetTileSources
If CurrentTilesSources.IndexOf("montilesource")=-1 Then
Dim MyXYTileSource As XYTileSource
MyXYTileSource.Initialize("montilesource", 4, 18, 256, ".tile", "http://localhost")
Carte1.AddXYTileSource(MyXYTileSource)

Quelqu'un saurait-il comment OSMDroid pourrait aller le tile source ailleurs que dans le dossier "osmdroid" de la racine par http://localhost ?*

Sinon, j'ai vu qu'il y avait une possibilité de continuer à utiliser file.DirRootExternal en utilisant la classe ExternalStorage, mais je n'ai pas compris comment l'utiliser.
Merci de votre aide.
 
Top