Exemple avancé

Dans cette section, nous partons du principe que vous avez déjà suivi le guide "Hello World". Il vous guidera pour convertir cela en implémentation complète. Il renvoie souvent aux sections de référence de développement de ce document.

Remplacez la logique de l'exemple Hello World par votre logique interprofil réelle.

N'hésitez pas à créer un désordre et à ne pas vous préoccuper des bonnes pratiques comme la testabilité. Assurez-vous qu'elle fonctionne.

Cela inclut la modification de la classe interprofils, des appels interprofils et du fournisseur. Si vous avez besoin d'un Context dans la méthode du fournisseur ou dans le constructeur de la classe du fournisseur, vous pouvez en ajouter un en tant que paramètre, et le SDK le fournira automatiquement.

Vous devez décider si vos appels seront asynchrones ou synchrones. Vous devez également vous assurer que tous les types de paramètres et de renvois utilisés par vos appels interprofils sont compatibles.

Refactorisez votre logique pour obtenir une architecture que vous pourrez soumettre

Commencez par lire chacune des suggestions d'architecture afin de ne pas avoir à effectuer plusieurs refactorisations contradictoires. Une fois que vous avez planifié les modifications, examinez-les et cochez-les, puis recréez et testez les modifications après chaque modification.

Vérifiez la confidentialité et la sécurité

Vérifiez que vous ne risquez pas de stocker des données dans le mauvais profil ou d'envoyer des données à un serveur (y compris la journalisation du serveur) à partir du mauvais profil.

  • Pour simplifier vos appels, envisagez de désigner un profil comme profil principal. Réfléchissez à ce qui se passe si votre logique est exécutée sur l'un ou l'autre de ces profils.
  • Actualisez l'interface utilisateur lorsque la disponibilité de l'autre profil change.
  • Consultez la discussion sur les exceptions au cas où vous devriez prendre des mesures.
  • Si vous prévoyez que les utilisateurs n'utiliseront l'icône de l'application que dans l'un des deux profils, ajoutez l'attribut de fichier manifeste android:crossProfile = "true". Cela empêche l'application qui n'est pas directement utilisée par l'utilisateur d'être déléguée à des buckets de mise en veille des applications inférieurs.

Ajouter des tests

Consultez la documentation de test.

Tenir compte des autorisations

  • Si votre application nécessite un consentement total, remplacez INTERACT_ACROSS_USERS par INTERACT_ACROSS_PROFILES et demandez l'autorisation à l'utilisateur. Les applications déclarant INTERACT_ACROSS_PROFILES ne peuvent pas être importées sur le Play Store tant qu'elles ne figurent pas sur la liste d'autorisation. Par conséquent, cette modification du fichier manifeste doit être associée à un indicateur jusqu'à ce que cela soit fait.

  • Si votre application est pré-autorisée, vous pouvez également le faire si vous souhaitez inviter les utilisateurs qui l'ont précédemment désactivée (mais soyez responsable : n'envoyez pas de spam aux utilisateurs).