Vous pouvez choisir quand et à quelle fréquence vous voulez que votre application vérifie sa licence et vous avez un contrôle total sur la façon dont elle traite la réponse, vérifie les données signées de la réponse et applique les contrôles d'accès.
Desde http://developer.Android.com/guide/market/licensing/overview.html
Donc oui, en gros, quand le développeur le veut. J'imagine que le moment le plus courant pour vérifier est à la première ouverture de l'application.
Votre application n'interroge pas directement le serveur de licences, mais appelle le client Google Play par IPC distant pour lancer une demande de licence. Dans la demande de licence :
-
Votre application fournit : son nom de paquet, un nonce qui est ensuite utilisé pour valider toute réponse du serveur, et un callback sur lequel la réponse qui permet de renvoyer la réponse de manière asynchrone.
-
Le client Google Play recueille les informations nécessaires sur les éléments suivants l'utilisateur et l'appareil, telles que le compte Google principal de l'appareil, son le nom d'utilisateur, l'IMSI et d'autres informations. Il envoie ensuite la demande de vérification de la licence au serveur au nom de votre application.
-
Le serveur Google Play évalue la demande en utilisant toutes les informations disponibles, en essayant d'établir l'identité de l'utilisateur avec un niveau de confiance suffisant. Le serveur vérifie ensuite l'identité de l'utilisateur par rapport aux enregistrements d'achat de votre application et renvoie une réponse de licence, que le client Google Play renvoie à votre application via le rappel IPC.
Donc :
- Les informations concernant l'application, l'appareil et l'utilisateur sont transmises aux serveurs de Google.
- Google vérifie ensuite votre nom dans la liste des personnes qui, à sa connaissance, ont payé l'application sur Google Play. (Il pourrait également comparer le nom de l'application à une liste d'applications qu'il sait que vous avez téléchargées sur Google Play.)
- S'il voit que vous avez téléchargé (et payé) l'application sur Google Play, il renvoie un message indiquant que vous avez une licence, sinon il indique à l'application que vous n'en avez pas.
Évidemment, tout cela se fait en ligne, donc si vous êtes hors ligne, cela ne fonctionnera pas. Si j'écrivais l'application, je mettrais un compteur pour permettre à la personne de l'utiliser hors ligne 3 fois environ avant de devoir aller en ligne pour vérifier la licence afin d'éviter que le genre de chose qui vous arrive ne vous empêche de jouer hors ligne. Bien sûr, si quelqu'un creuse dans le fichier où le compteur est stocké, il pourrait changer la valeur à 3 essais chaque fois qu'il l'utilise et ne jamais avoir à payer, mais c'est probablement au-delà des compétences techniques de la plupart des utilisateurs.