Table des matières:
- Créer une nouvelle application Android
- La bibliothèque de licences
- Obtenir une clé de licence pour votre application
- Modifier votre application pour la gestion des licences
- Test de la licence de votre application
Vidéo: 10/13 Traitement des salaires, Enregistrement Licence et A propos de l'auteur 2025
Avec la licence de l'application Android, chaque appareil vérifie avec un serveur que cet appareil est autorisé à exécuter votre application. La licence est importante pour toute application payante. La licence est également une bonne précaution avec une application gratuite (pour vous aider à maintenir la propriété du concept de l'application). Cet article vous guide à travers les étapes pour ajouter un schéma de licence simple à votre application Android.
Créer une nouvelle application Android
Créez un nouveau projet Android comme vous le faites normalement. Lors de la définition d'un SDK minimal, sélectionnez API Niveau 19 ou inférieur. Dans la construction de la nouvelle application. fichier gradle, changez la targetSdkVersion en 19 ou moins.
La bibliothèque de licences
Voici une façon d'ajouter la bibliothèque de licences de Google à votre projet:
-
Dans le menu principal d'Android Studio, sélectionnez Outils → Android → Gestionnaire SDK.
-
Dans l'onglet Outils SDK du Gestionnaire de SDK, sélectionnez Bibliothèque de licences Google Play.
-
Cliquez sur OK pour télécharger et installer la bibliothèque de licences.
-
Une fois l'installation terminée, cliquez sur Terminer pour fermer le Gestionnaire de SDK.
-
Dans le menu principal d'Android Studio, sélectionnez Fichier → Structure du projet.
-
Dans la partie gauche de la boîte de dialogue Structure du projet, sélectionnez l'élément Emplacement du SDK.
-
Dans le corps de la boîte de dialogue Structure du projet, notez l'entrée dans le champ de texte Emplacement du SDK Android.
C'est l'endroit sur votre disque dur où le SDK Android a été installé.
-
Cliquez sur OK pour fermer la boîte de dialogue Structure du projet.
-
Avec l'Explorateur de fichiers ou le Finder de votre ordinateur de développement, visitez l'emplacement sur votre disque dur où est installé le SDK Android.
-
Naviguez vers le répertoire extras / google / play_licensing / library / src / com.
Dans ce répertoire, vous trouverez un sous-répertoire nommé google.
-
Copiez le répertoire google dans le répertoire app / src / main / java / com de votre application.
Le répertoire app / src / main / java / com de votre application contient maintenant deux sous-répertoires. Par exemple, si une application est dans un package nommé com. allyourcode. licensingdemo, le répertoire app / src / main / java / com de l'application possède des sous-répertoires nommés allyourcode et google. Vous pouvez le voir avec l'Explorateur de fichiers ou le Finder de votre ordinateur, mais vous pouvez également le voir dans la fenêtre de l'outil Projet d'Android Studio (comme illustré ici).
Obtenir une clé de licence pour votre application
Vous avez besoin d'une clé de licence pour publier cette application. Pour obtenir votre clé, procédez comme suit:
-
Accédez à la Developer Console de Google Play Store.
-
Dans la console développeur, cliquez sur le bouton Ajouter une nouvelle application.
Une page Ajouter une nouvelle application apparaît.
-
Sur la page Ajouter une nouvelle application, tapez un titre pour votre nouvelle application.
-
Toujours sur la page Ajouter une nouvelle application, cliquez sur le bouton Préparer la liste de magasins.
Vous êtes redirigé vers une page d'annonce de magasin.
-
Sur le côté gauche de la page Liste des magasins, sélectionnez Services et API.
Les modifications apportées au contenu de la page Liste des magasins.
-
Sur la page Liste des magasins, cherchez une séquence de caractères monstrueusement longue comme celle montrée ici.
Une séquence de nombres monstrueusement longue. -
Copiez cette séquence de caractères et collez-la dans un fichier texte sur le disque dur de votre ordinateur de développement.
Modifier votre application pour la gestion des licences
Ensuite, vous devez ajouter du code à votre application afin que l'application vérifie le serveur de licences avant d'autoriser le client à l'utiliser. Voici un échantillon de bare-bones. (Pour un exemple plus riche, voir le code dans le dossier extras / google / play_licensing / sample du SDK.)
importez android. app. Activité; importer Android. contenu. Intention; importer Android. os. Paquet; importer Android. fournisseur. Paramètres; import com. Google. Android. vente. licence. AESObfuscator; import com. Google. Android. vente. licence. LicenseChecker; import com. Google. Android. vente. licence. LicenseCheckerCallback; import com. Google. Android. vente. licence. ServerManagedPolicy; classe publique MainActivity extends Activity {private static final Chaîne BASE64_PUBLIC_KEY = "VOTRE CLÉ PUBLIQUE VA ICI"; octet final statique privé [] SALT = new byte [] {// Vingt nombres (allant de // -128 à +127) vont ici}; private LicenseCheckerCallback mLicenseCheckerCallback; privateCheckCheckCheck mChecker; booléen privé keepGoing = true; @Override public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (disposition R., activité_main); String deviceId = Paramètres. Garantir. getString (getContentResolver (), Paramètres, sécurisé, ANDROID_ID); mLicenseCheckerCallback = new MyLicenseCheckerCallback (); mChecker = new LicenseChecker (ceci, nouveau ServerManagedPolicy (ceci, nouveau AESObfuscator (SALT, getPackageName (), deviceId)), BASE64_PUBLIC_KEY); doCheck ();} @Overide public void onResume () {super. pour résumer(); if (! keepGoing) {finish ();}} void privé doCheck () {mChecker. checkAccess (mLicenseCheckerCallback);} private class MyLicenseCheckerCallback implémente LicenseCheckerCallback {public void Autorisation (int policyReason) {if (isFinishing ()) {// Ne pas mettre à jour l'interface utilisateur si l'activité se termine. return;}} public void dontAllow (int policyReason) {if (isFinition ()) {return;} keepGoing = false; Intention intention = new Intent (MainActivity, this, classe NotLicensedActivity.); intention. putExtra ("message", getResources (). getString (chaîne R., app_not_licensed) + "(0x" + Integer.HexString (policyReason) + ")"); startActivity (intention);} public void applicationError (int code_erreur) {if (isFinishing ()) {return;} keepGoing = false; Intention intention = new Intent (MainActivity, this, classe NotLicensedActivity.); intention. putExtra ("message", getResources ().getString (chaîne R.. application_error) + "(0x" + Integer toHexString (code d'erreur) + ")"); startActivity (intention);}} @Overide protected void onDestroy () {super. onDestroy (); mChecker. onDestroy (); // N'oublie pas cette ligne. Sans cela, votre application risque de planter.}}
Pour que cet exemple de code fonctionne, vous devez ajouter quelques ingrédients supplémentaires:
-
Dans l'activité principale, remplacez les mots VOTRE CLÉ PUBLIQUE ICI avec votre propre clé de licence. Les étapes 6 et 7 de la section "Obtenir une clé de licence pour votre application" de cet article.
-
Composez votre propre valeur SALT à 20 chiffres - un terme fantaisiste pour un ensemble de valeurs produites au hasard - et ajoutez-la au code de l'activité principale.
-
Créez les ressources de chaîne app_not_licensed et application_error.
-
Ajouter au AndroidManifest du projet. fichier xml.
-
Ajoutez le code de votre propre application à l'exemple de code. (En d'autres termes, faites en sorte que votre application fasse ce qu'elle est supposée faire - jouer à un jeu, afficher des informations, résoudre un problème, etc.)
-
Créer une classe NotLicensedActivity.
Un exemple NotLicensedActivity est copié ici.
classe publique NotLicensedActivity extends Activity {public void onCrée (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (mise en page, not_licensed); String message = getIntent (). getExtras (). getString ("message"); ((TextView) findViewById (R. Id. Message_text)). setText (message); ((TextView) findViewById (ID R. message_text2)). setText (message); public void quitApp (Voir la vue) {finish ();}}
-
Ajoutez des vues de texte nommées message_text et message_text2 au fichier de mise en page de votre NotLicensedActivity.
Dans l'activité principale, l'essence de la vérification des licences est en deux parties (a) l'appel à doCheck (), qui communique avec le serveur Google Play, et (b) la classe interne MyLicenseCheckerCallback (la classe qui répond à les résultats du serveur de jeu). Le LicenseCheckerCallback doit avoir au moins trois méthodes - une méthode allow () pour "aller de l'avant et utiliser l'application", une méthode dontAllow () pour "vous n'êtes pas autorisé à utiliser cette application", et une méthode applicationError () pour "Oh, oh! "
Dans l'exemple de code, rien de spécial n'est fait dans la méthode allow (). Dans les méthodes dontAllow () et applicationError (), une autre activité est appelée NotLicensedActivity. Vous pouvez faire en sorte que NotLicensedActivity fasse ce que vous voulez. Quoi qu'il arrive dans NotLicensedActivity, un champ keepGoing est défini sur false, indiquant à l'activité principale d'appeler finish () (dans la méthode onResume) lors du retour de NotLicensedActivity.
Vous pouvez utiliser cette astuce ou faire quelque chose de différent. Dans Android, les activités ne sont pas modales . C'est-à-dire que si une activité couvre partiellement une autre activité, alors l'utilisateur peut interagir avec l'une ou l'autre activité en touchant la partie appropriée de l'écran. Donc, si NotLicensedActivity ne couvre pas complètement l'activité principale, l'utilisateur peut contourner la NotLicensedActivity en touchant une autre partie de l'écran. Pour éviter cela, faites en sorte que la couverture NotLicensedActivity couvre tout l'écran, en résistant à la tentation de faire ressembler la NotLicensedActivity à une petite boîte de dialogue.
Test de la licence de votre application
Votre licence d'application fonctionne-t-elle? Les utilisateurs autorisés peuvent-ils exécuter votre application? Et qu'en est-il des utilisateurs sans licence? Peuvent-ils exécuter votre application, aussi? Vous pouvez le savoir après avoir téléchargé votre application et avant de publier votre application. Voici comment:
-
Visitez // play. Google. com / apps / publish /.
-
Dans la partie la plus à gauche de la page Console du développeur, sélectionnez Paramètres.
La page Paramètres de votre compte apparaît.
-
Dans la partie gauche de la page Paramètres, sélectionnez Détails du compte.
-
Faites défiler la page Détails du compte jusqu'à trouver une section Tests de licence.
Dans la section Tests de licence, vous trouverez un champ de texte intitulé Comptes Gmail avec accès aux tests. Vous trouverez également une liste déroulante intitulée Réponse au test de licence.
Options de réponse à votre test de licence -
Dans le champ Comptes Gmail avec accès aux tests, entrez l'adresse électronique d'un ou de plusieurs comptes Gmail.
Si vous tapez plus d'une adresse e-mail, utilisez une virgule pour séparer une adresse d'une autre. Les personnes dont les appareils Android sont enregistrés sur ces adresses électroniques pourront trouver votre application sur le Google Play Store. (Les autres utilisateurs ne verront pas votre application.)
-
Dans la liste des réponses de test sous licence, sélectionnez NOT_LICENSED.
Les utilisateurs qui installent votre application (les utilisateurs avec les adresses Gmail répertoriées à l'étape 5) recevront cette réponse NOT_LICENSED lorsqu'ils essaieront d'exécuter l'application.
-
Dites aux utilisateurs de votre liste de comptes Gmail d'essayer de télécharger et d'installer votre application.
Si le code de votre application est correct (par exemple, si la méthode onCreate dans l'activité principale de cet article fait son travail), l'utilisateur ne pourra pas continuer à exécuter votre application. C'est exactement ce que vous voulez
-
Lorsque vous êtes satisfait des résultats des tests des étapes 6 et 7, consultez la console développeur et modifiez la réponse de test sous licence à LICENSED.
-
Informez les utilisateurs de votre liste de comptes Gmail pour qu'ils réexécutent votre application.
Si le code de votre application est correct (par exemple, si la méthode onCreate de l'activité principale de cet article fait son travail), l'utilisateur pourra continuer à exécuter votre application.
-
Essayez d'autres options dans la liste des réponses de test sous licence - options telles que LICENSED_OLD_KEY, ERROR_SERVER_FAILURE, etc.
Rappelez-vous, il n'y a rien de tel que trop de tests.
