A partir de la version 10 de Android, Google supprime la possibilité pour une application en arrière plan d'ouvrir une fenêtre (Activity) . C'est un changement très important qui concerne toutes les applications Android, donc également les applications générées avec WINDEV Mobile.

 

Une application fonctionnelle avec toutes les versions en Android, aura donc les limitations suivantes sur un appareil installé ou mis à jour avec Android 10 :

Ces limitations s'appliquent à toutes les applications générées avec WINDEV Mobile 25 "Update 2", et les versions antérieures.

 

A partir de la version "Update 3" de WINDEV Mobile 25, le framework Android a été modifié afin de tenir compte de cette exigence de Google. Ces modifications ne sont pas de simples "corrections" de fonctions, mais correspondent à une réécriture complète de nombreux mécanismes internes du framework Android. Ces modifications ne peuvent donc s'intégrer qu'à une "update" complète de WINDEV Mobile. Elles ne peuventt pas être proposées sous la forme d'une simple mise à jour intermédiaire pour update antérieure, ou une version précédente de WINDEV Mobile.

 

Donc à partir de la version "Update 3" de WINDEV Mobile 25, les notifications push, le suivi de position, la détection beacon sont rétablies sous Android 10. De plus le mécanisme de sécurité du WLangage est complété, afin de déclencher une erreur fatale si une fonction provoquant l'ouverture d'une fenêtre est appelée lorsque l'application est en arrière-plan. La liste complète des fonctions concernées est à la fin du billet afin de faciliter la lecture.

 

Afin de s'assurer du bon fonctionnement d'une application sous Android 10, il faut donc :

  • utiliser la version "Update 3" de WINDEV Mobile 25 pour sa génération. Sa disponibilité dans l'espace téléchargement est imminente.

  • vérifier tous les traitements pouvant être lancés depuis l'application en arrière-plan : ils ne doivent pas déboucher sur l'ouverture d'une fenêtre. Les possibilités suivantes sont utiles :
    • fonction EnModeArrièrePlan : permet de savoir si le traitement en cours s'exécute en arrière-plan ou non,
    • si une application a besoin d'interagir avec l'utilisateur alors qu'elle se trouve en arrière-plan, la solution préconisée est d'afficher une notification. Lors du clic sur la notification, l'application sera remise au premier plan et sera donc autorisée à ouvrir une fenêtre depuis la procédure appelée grâce à la propriété ActionClic de la notification (la notification doit avoir la propriété ..ActiveApplication à vrai).
  • en phase de mise au point de l'application sur un téléphone ou une tablette Android, utiliser le log Android afin de cerner l'origine d'un éventuel blocage durant l'exécution en arrière-plan. En effet, l'ouverture de fenêtre n'étant pas autorisée depuis l'arrière-plan, le mécanisme de sécurité du WLangage ne peut pas remonter d'information. Les erreurs sont donc consignées dans le log Android.

Exception pour confirmer la règle : les applications "device owner" ne sont pas concernées. Dans ce mode spécifique l'ouverture de fenêtre reste autorisée (EnModeDeviceOwner = Vrai).


Liste des fonctions qui ne doivent pas être appelées si l'application est en arrière-plan :

  • Ouvre, OuvreSoeur, OuvreFille,
  • Info, InfoAsynchrone, InfoConstruit, Erreur, ErreurAsynchrone, ErreurConstruit, Avertissement, Confirmer, OkAnnuler, OuiNon, Dialogue, Saisie,
  • AlbumSélecteur,
  • ContactEdite,ContactAffiche, ContactSélectionne, ContactCréé,
  • KiosqueActive, KiosqueDésactive,
  • LanceAppli, LanceAppliAssociée,
  • fbOuvreSession,
  • VérifieIdentitéUtilisateur,
  • InAppAchèteProduit,
  • VidéoLanceAppli,
  • CBCapture,
  • btChangeVisibilité,
  • smsLanceAppli,
  • EmailLanceAppli, EmailOuvreMessagerie,
  • AuthIdentifie,
  • gpwAuthLogin,
  • NFCLitTag, NFCEcritTag, NFCEnvoieTag,
  • DateSélecteur, HeureSélecteur,
  • UriSélecteur,
  • ReconnaissanceVocaleDéclenche,
  • SynthèseVocaleInitalise, SynthèseVocaleLitTexte, SynthèseVocaleLitFichier,
  • LancePartage,
  • AppliOuvreFiche,
  • géoLanceAppli,
  • gglImprimeDocument,
  • RendezVousCréé, RendezVousAffiche,
  • telDialerCompose,
  • telDialerAfficher.

< Retour

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


© 2020 PC SOFT. Tous droits réservés. Réalisé  avec WEBDEV