Comment puis-je mettre en œuvre le Google Play de Licence pour une application Android?
J'ai vu le stock Android-Développeur de licence de la bibliothèque instructions, mais la vue d'ensemble semble omettre plusieurs étapes clés dans le processus et ne parvient pas à expliquer comment obtenir quelque chose de travail.
Quelqu'un peut-il fournir un ensemble explicite de opérations qui ont travaillé pour obtenir la licence de la bibliothèque mis en place sur une application Android afin qu'il vérifie que l'utilisateur a payé pour une application dans Google Play avant de permettre l'utilisation?
- Peut-être que vous devriez mettre la question réelle (par exemple, "y at-il de bons tutoriels sur Android Licence?") et d'ajouter votre tutoriel comme réponse?
- J'ai pensé à ce sujet, je suppose que je pourrais avoir répondu à ma propre question, mais qui semble un peu maladroit quand quelqu'un lit-il.
- Hmm... je suis pas d'accord 🙂 Maintenant, la façon dont cela se présente, il n'existe aucun moyen pour toute autre personne à mettre de l'entrée ici. 1) C'est OK pour répondre à des questions ici. 2) Vous pouvez ajouter "Pas hors site des liens, s'il vous plaît". 3) Si vous êtes vraiment intéressé, vous pouvez choisir de faire votre réponse à une wiki de la communauté. Afin qu'il ne ressemble pas à un cri pour les scores de réputation.
- Oui, je pense que vous devriez se et le cadre de la question, ainsi, comme une question. Ensuite, vous pouvez répondre et de l'accepter ou de le wiki il. Plein de bonnes informations, mais je dois dire - qu'en est - il de la "pas question.".
- Hmmm... ok. Je n'ai jamais utilisé le
Answer own question
fonctionnalité de ce site, alors je ne savais pas à quoi m'attendre. Et pensez-vous que je devrais le faire un wiki de la communauté, ou devrais-je laisser comme il est. Je ne veux pas être briser les règles ici. - Répondant à une question ne peut pas briser toutes les règles 🙂
- Dois-je changer la question de ce que
shoerat
dit, puis copiez le tutoriel comme une réponse et supprimer le tutoriel en question, et mettre une vraie question là? - Je suppose que vous pourriez et votre réponse être le tutoriel. Vous pouvez toujours naviguer à d'autres wikis pour voir comment ils regardent. Soit la façon dont les questions sont à poser des questions. Vous pouvez aussi lire sur le site de la faq pour voir ce qui est approprié. Il est bon de document de questions et de solutions pour vous-même sur le site. Qui peut ne pas aller si bien à chaque fois en termes de vos rep, mais vous pouvez garantir qu'il sera là disponible pour référence ultérieure.
- Est-ce mieux?
- Pourquoi cette question est "fermé" m'étonne. Certains utilisateurs de ce forum semblent avoir rien de mieux à faire que d'agir comme des "jobsworths". C'est l'un des plus utiles les questions et les réponses associées, j'ai vu sur le site. Certaines personnes devraient obtenir leurs têtes de leurs fesses
Vous devez vous connecter pour publier un commentaire.
J'ai travaillé sur la mise en œuvre de la concession de licences dans mon application pour un certain temps maintenant, et enfin avoir de travail. Je voulais partager quelques choses que j'ai trouvé utile pour la mise en route et de certains des problèmes et des solutions que j'ai trouvé avec tout le monde. L'android dev tutoriel j'ai lié ci-dessous est ok, mais il n'était pas très utile pour moi, j'ai donc décidé de faire un tutoriel. Profiter, et j'espère que cela vous aide!
Lien vers la page développeur ici.
1. Prise en main
Choses dont vous aurez besoin.
1.1 Votre Base64 unique clé d'application
Comment l'obtenir:
un. Aller à votre développeur de la console. Lien.
b. Si vous n'avez pas déjà créé un projet d'application pour votre application, le faire maintenant.
c. Une fois que vous avez créé le projet, c'est une bonne idée de télécharger votre
.apk
comme l'Alpha ou Bêta. Laisser inédit.d. Cliquez sur
Services & APIs
e. Faites défiler vers le bas et trouver
YOUR LICENSE KEY FOR THIS APPLICATION
f. Copier la clé dans votre application comme ceci:
Assurez-vous qu'il n'y a pas d'espaces.
1.2 Un sel
un. Qu'est ce qu'un sel?
Un sel est aléatoire les données d'entrée supplémentaires lorsque le hachage d'un mot de passe. Ils sont utilisés pour se défendre contre les attaques de dictionnaire. et table arc-en-ciel attaques.
b. Comment puis-je en obtenir un?
Cette est un bon lien pour la génération aléatoire de sel. Il devrait y avoir exactement 20 entiers aléatoires, donc de mettre
20
pour le montant total de chaînes aléatoires pour générer, chaque chaîne doit être2
caractères (utilisé pour cet exemple, il n'a pas à être). Vérifier les chiffres, et de vérifier des chaînes Identiques sont autorisés. Ils peuvent être des nombres négatifs aussi. Essayez de supprimer toute redondance, par exemple00 -> 0
, par souci de cohérence.c. Où dois-je mettre le sel?
Lors de la déclaration de variables viens de mettre ce code, sauf avec votre hasard le sel.
2. L'importation du LVL (Licence) de la bibliothèque dans Eclipse et le code que vous devez
2.1 Importation de la bibliothèque
un. Ouvrir
Android SDK Manager
b. Aller à
Extras
c. Installer
Google Play Licensing Library
d. Trouvez votre
SDK
chemin d'installation qui est indiqué en haut de la SDK manager.e. Une fois que vous êtes là, naviguez jusqu'à:
<sdk>/extras/google/play_licensing
f. Dans eclipse, cliquez sur
file
puisimport
, puisExisting Android Code Into Workspace
et quand il vous demande le chemin d'accès au fichier, naviguez jusqu'à l'play_licensing
dossier et cliquez surlibrary
.g. Une fois le projet nommé
library
a été importé, cliquez droit dessus, puis cliquezproperties
. Cliquez surAndroid
sur la gauche et naviguez vers le bas et vérifierIs Library
, puis cliquez sur appliquer. Cela vous permet de eclipse sais que vous pouvez utiliser ce code de projet comme une bibliothèque.h. Clic droit sur votre application que vous ajoutez de licence, puis cliquez sur propriétés, puis cliquez
Android
. Allez tout en bas et cliquez surlibrary
et l'ajouter à la build path. Cela devrait importer la bibliothèque de laAndroid Dependencies
dossier.je. Votre projet est mis en place pour passer à l'étape suivante.
2.2 Variables à déclarer avec votre
SALT
etKEY
2.3 Le code
Coller ce code en bas de votre application. Cette mise en œuvre de notifier à l'utilisateur si la licence n'est pas valide et pour les inciter à acheter l'application ou d'en sortir.
2.4 Obtenir l'identifiant de votre appareil
Il y a eu un débat à ce sujet dans le passé quant à savoir si ou de ne pas utiliser la carte sim de série ou
TelephonyManager.getDeviceId();
mais il est généralement recommandé que vous utilisez le code suivant pour obtenir laANDROID_ID
de votre appareil pour un maximum de compatibilité.2.5 Création de la licence vérificateur
un. Avant d'appeler
doCheck();
vous devez mettre ce code dans votre application afin de s'assurer que tout est créé correctement.Quand je faisais ma mise en œuvre de LVL, j'ai lu que si vous rencontrez des problèmes avec les Licences, vous pouvez modifier le premier
this
dans lemChecker = new LicenseChecker(this...
àgetApplicationContext()
, le mien semblait fonctionner sans elle, mais juste au cas où.2.6 de l'Ajout d'autorisations
un. Il y a deux autorisations que vous devez ajouter à vos applications
manifest
fichier.2.7 assurez-vous d'avoir le bon importations de!
Vous avez probablement déjà fait cela, mais j'ai pensé qu'il serait un bon endroit pour vous de vérifier.
2.8 Comment appeler la licence à vérifier
un. Appelez simplement
doCheck();
chaque fois que vous voulez vérifier la licence. Par exemple, si l'application est sur son premier run, faire le chèque.3. Comment puis-je tester l'octroi de licences à s'assurer qu'il fonctionne avant de le publier?
3.1 Configuration de l'équipement de test
un. J'ai mon téléphone que j'utilise aussi pour les tests. Il est recommandé qu'il ne faut qu'un seul compte Google enregistrés sur le téléphone, historiquement, il rend les choses un peu plus facile. Vous pouvez vérifier les comptes en allant à
Settings -> Accounts
.3.2 Configuration de la console développeur
un. Ouvrez votre développeur de la console et aller à
Settings
sur le côté gauche.b. Trouver
License Testing
c. Assurez-vous que votre adresse e-mail est répertorié sous
Gmail accounts with testing access
d. Maintenant, vous pouvez modifier le test en réponse à ce que vous voulez à des fins de test. L'application doit répondre en conséquence. N'oubliez pas que si vous enregistrez les données via SharedPrefs, vous devez effacer vos données d'application chaque fois que vous le tester. Assurez-vous que vous cliquez sur enregistrer après la modification de la réponse du test ou il ne se passera rien! J'ai oublié plusieurs fois, et j'ai fini avec une migraine, j'ai vu puant bouton enregistrer. Lol.
4. Choses à essayer
4.1 Conditionnelle de vérification de licence
un. Vous pouvez essayer ce code si vous êtes économiser de l'
didCheck
données dansSharedPreferences
.4.2 le Cryptage de vos
SharedPreferences
à l'aide deSecurePreferences
un. Allez à cette lien.
b. Copier et coller le code de
SecurePreferences.java
dans une classe avec exactement le même nom dans votre projet.c. Lire la
ReadMe.md
pour plus d'informations sur la mise en œuvre de cette.5. Dépannage
De l'autorisation peut être un diable d'un casse-tête pour résoudre les problèmes, tout simplement parce qu'il ya beaucoup plus de choses qui peuvent mal se passer. Par exemple, il pourrait y avoir des problèmes de réseau ou des problèmes de serveur que vous voulez ripper vos cheveux. L'utilisation d'une journalisation aidera avec cela, vous pouvez également obtenir la réponse du serveur codes si il y a un problème et vous pouvez les retrouver sur le serveur ou de votre application. J'ai dû le faire à plusieurs reprises.
5.1 je ne peux pas obtenir mon appli pour retourner auprès du serveur
Des Correctifs Possibles:
un. Assurez-vous que votre application a la bonne
KEY
.b. Assurez-vous que vous vous connectez à chaque étape de la progression
c. Vérifiez votre journal pour quoi que ce soit de la concession de licences de service. Il peut être utile pour essayer de comprendre où quelque chose s'est mal passé.
d. Assurez-vous que
allow()
etdontAllow()
etapplicationError()
ont@Override
balises.5.2 Mon appli toujours dit
LICENSED
ouNOT_LICENSED
peu importe ce que j'ai mis dans la réponse du testun. Le meilleur remède que j'ai pour ce est juste pour attendre. Il me semble que si tu fais beaucoup de tests dans un court laps de temps, il sera toujours de vous envoyer le code serveur
291
qui est la nouvelle tentative de code. J'ai attendu la nuit et tout a bien fonctionné, le lendemain matin.b. Vous pouvez effacer les données (pas seulement le cache) de l'application Google Play et Google Play app. Ouvrez ensuite de lire et d'accepter toutes les licences et essayez à nouveau.
c. Effacer vos données d'application.
5.3 Liste des serveurs codes de réponse pour le débogage
Vous devriez obtenir ces valeurs décimales pour
int reason
si vous vous connectez entre eux. Utilisez ce tableau pour faire référence à ce que le serveur est en fait de l'envoi de votre application.5.4 de la place pour plus! Ils viendront!
J'espère que cela vous aide à vous les gars! J'ai essayé de partager mes maux de tête et fixe avec vous les gars du mieux que je peux et j'espère que cela aide!
Si j'ai fait des erreurs, assurez-vous de me dire si je peux les obtenir corrigés dès que possible!
<uses-permission android:name="android.permission.INTERNET"/>
n'est pas nécessaire. Il est important de dire à votre application n'a pas besoin d'un accès direct à internet, afin de vérifier la licence.using getString() to get device identifier is not recommended
maintenant.mChecker.onDestroy()
sur votre pion comme l'avait recommandé dans le guide de la proximité de la CIB connexions.