Après chaque déploiement d'une nouvelle version de Android, Google demande à relever le niveau d'API cible "TargetSdkVersion" des applications pour les déployer dans le Play Store. Avec la sortie de Android 10, le niveau d'API imposé pour que Google autorise le déploiement doit être à 29. Cela s'applique à partir du :

  • 3 août 2020 pour les nouvelles applications,
  • 2 novembre 2020 pour les applications mises à jour.

 

Afin de générer une application avec ce niveau d'API, il faut utiliser WINDEV Mobile 25 "Update 4" (250090F).

 

Voici les changements qui s'appliquent aux applications :

 

1 - lorsque l'exécution se fait sous Android 10 :

 

2 - lorsque l'exécution se fait sous Android 10 et que le niveau d'API cible est en 29 :

  • Une application n'est plus autorisée à accéder à des fichiers situés sur le stockage externe, en dehors des répertoires spécifiques à cette application (fonction SysRepStockageExterne avec constantes sseApp*).
    Les accès en lecture ou en écriture à ces fichiers échoueront. Les chemins de fichiers fixés "en dur" ou construits à partir de SysRepCarteStockage ou SysRepStockageExterne avec les constantes ssePublic* ne doivent donc plus être utilisés. Cette limitation sera définitive à partir de Android 11 lorsque le niveau d'API sera relevé à 30. Avec Android 10 et le niveau d'API 29 il y a une tolérance pour l'accès à ces emplacements (grâce à l'attribut requestLegacyExternalStorage du manifeste de l'application). Ils restent donc utilisables avec les applications générés par :
    • WINDEV Mobile 25 "Update 4" (250090F),
    • WINDEV 26 "Update 1" (260075P) et "Update 2" (260089P) qui conservent le niveau d'API 29.

mais il est recommandé de prévoir les adaptations nécessaires dans les applications qui utiliseraient ces emplacements.


Rappelons que le niveau d'API cible "TargetSdkVersion" attribué à une application est visible dans l'assistant de génération de l'APK :

  • à l'étape "Configuration" de l'assistant de génération, utiliser "Configuration avancée",
  • dans la fenêtre "Configuration avancée", utiliser "Editer le manifeste",
  • dérouler le nœud "uses-sdk",
  • l'entrée "android:targetSdkVersion" montre le niveau d'API cible.
    Il est d'ailleurs modifiable. Il est donc possible dans une application WINDEV Mobile générée sans la mise à jour 118 661, d'indiquer le niveau d'API cible en 29. Mais dans ce cas l'application n'aura pas un framework adapté aux spécificités de ce niveau d'API. Il s'agit donc d'une solution fortement déconseillée, puisque que Android appliquera des règles de sécurité à l'application qui sont différentes de celles pour lesquelles elle a été testée.

Le rôle du "TargetSdkVersion" est décrit avec davantage de précisions :

 

Tableau de synthèse du niveau/level d'API (TargetSdkVersion) indiqué dans le manifeste des applications Android en fonction de la version de WINDEV Mobile :

< Retour

Publier un commentaire : 
Votre adresse email ne sera pas publiée