Über App Licensing

Mit Android App Lizenzierung, jedes Gerät prüft mit einem Server, um sicherzustellen, dass dieses Gerät die Erlaubnis, Ihre App zu laufen hat. Die Lizenzierung ist wichtig für jede App bezahlt. Die Lizenzierung ist auch eine gute Vorsichtsmaßnahme mit einer kostenlosen App (helfen Sie Eigentum an der App-Konzept beibehalten). Dieser Artikel führt Sie durch die Schritte, ein einfaches Lizenzierungsschema auf Ihr Android-Anwendung hinzuzufügen.

Erstellen einer neuen Android-Anwendung

Erstellen Sie ein neues Android-Projekt so, wie Sie es normalerweise tun. Wenn Sie ein Minimum SDK Einstellung wählen API Stufe 19 oder niedriger. In den neuen App build.gradle Datei, ändern Sie die targetSdkVersion nach 19 oder niedriger. (Es braucht mehr Arbeit Lizenzierung zu tun, wenn Sie eine neuere API-Ebene zielen.)

Die Lizenzierung Bibliothek

Hier ist eine Möglichkeit Googles Lizenzierungsbibliothek zu einem Projekt hinzuzufügen:

  1. Im Android Studio im Hauptmenü, wählen Sie Extras-Android-SDK-Manager.

  2. In den SDK-Tools Registerkarte SDK Manager, wählen Sie Google Licensing Bibliothek abspielen.

  3. Klicken Sie auf OK zum Download und die Lizenzierung Bibliothek installieren.

  4. Wenn die Installation abgeschlossen ist, klicken Sie auf Fertig stellen um den SDK-Manager zu schließen.

  5. Im Android Studio Hauptmenü, Datei-Projektstruktur wählen.

  6. Auf der linken Seite des Dialogfelds Projektstruktur, wählen Sie das SDK Location Element.

  7. Im Hauptteil des Dialogfelds Projektstruktur, beachten Sie den Eintrag im Android SDK Location Textfeld ein.

    Dies ist der Ort auf der Festplatte, auf der das Android SDK installiert wurde.

  8. Klicken Sie auf OK, um die Projektstruktur-Dialogfeld zu schließen.

  9. Mit dem Datei-Explorer oder Finder-Entwicklungscomputer, besuchen den Ort auf der Festplatte, auf der das Android SDK installiert ist.

  10. Navigieren Sie nach unten zu den Extras / google / play_licensing / library / src / com-Verzeichnis.

    In diesem Verzeichnis finden Sie ein Unterverzeichnis finden benannt Google.

  11. Kopieren Sie die Google-Verzeichnis Ihrer Anwendung app / src / main / java / com-Verzeichnis.

Jetzt ist Ihre Anwendung app / src / main / java / com Verzeichnis hat zwei Verzeichnisse. Wenn beispielsweise eine Anwendung in einem Paket mit dem Namen com.allyourcode.licensingdemo, die Anwendung app / src / main / java / com Verzeichnis hat Unterverzeichnisse benannt allyourcode und Google. Sie können Ihren Computer mit dem Datei-Explorer oder Finder sehen dies, aber man kann es auch in Android Studio-Tool Projekt-Fenster zu sehen (wie hier gezeigt).

Einige neue Verzeichnisse.
Einige neue Verzeichnisse.

Wie Sie einen Lizenzschlüssel für Ihre App

Sie benötigen einen Lizenzschlüssel, um diese App zu veröffentlichen. Um Ihre Schlüssel, gehen Sie wie folgt vor:

  1. Besuch Google Play Store Developer Console.

  2. In der Entwicklerkonsole, klicken Sie auf die neue Schaltfläche Anwendung hinzufügen.

    Eine Applikation hinzufügen Seite erscheint.

  3. Auf der Seite Neue Anwendung hinzufügen einen Titel für die neue Anwendung ein.

  4. Noch immer auf der Seite Neue Anwendung hinzufügen, klicken Sie auf die Schaltfläche Store-Eintrag vorbereiten.

    Sie werden zu einem Store-Eintrag Seite genommen.

  5. Auf der linken Seite des Store-Eintrag Seite, wählen Sie Dienste und APIs.

    Die Store-Eintrag Seite Inhalt ändert.

  6. Auf der Store-Eintrag Seite, suchen Sie nach einem monströs lange Folge von Zeichen wie das hier gezeigt.

    Eine monströs lange Folge von Zahlen.
    Eine monströs lange Folge von Zahlen.
  7. Kopieren Sie diese Folge von Zeichen, und fügen Sie ihn in eine Textdatei auf der Festplatte des Entwicklungscomputer.

Ändern Sie Ihre App für die Lizenzierung

Als nächstes müssen Sie den Code zu Ihrer Anwendung hinzufügen, so dass die App der Kunde die Lizenzserver überprüft, bevor so dass es zu benutzen. Hier ist eine nackte Knochen-Probe. sehen (für eine reichere Probe, den Code in den SDK Extras / google / play_licensing / Probe Mappe.)

Import android.app.Activity-Import android.content.Intent-Import android.os.Bundle-Import android.provider.Settings-Import com.google.android.vending.licensing.AESObfuscator-Import com.google.android.vending. licensing.LicenseChecker-Import com.google.android.vending.licensing.LicenseCheckerCallback-Import com.google.android.vending.licensing.ServerManagedPolicy-public class MainActivity erstreckt Aktivität {private static final String BASE64_PUBLIC_KEY = "öffentliche Schlüssel GOES HERE" - private static final byte [] SALT = new byte [] {// Zwanzig Zahlen (im Bereich von // -128 bis +127) gehen hier} -privater LicenseCheckerCallback mLicenseCheckerCallback-private LicenseChecker mChecker-private boolean keepGoing = Echt- @ Overridepublic Leere onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) -setContentView (R.layout.activity_main) -String deviceId = Settings.Secure.getString (getContentResolver (), Settings.Secure.ANDROID_ID) -mLicenseCheckerCallback = new MyLicenseCheckerCallback () - mChecker = neue LicenseChecker (das neue ServerManagedPolicy (das neue AESObfuscator (SALT, getPackageName (), deviceId)), BASE64_PUBLIC_KEY) -doCheck () -} @ Overridepublic Leere onResume () {super.onResume () - if (keepGoing!) { finish () -}} private void doCheck () {mChecker.checkAccess (mLicenseCheckerCallback) -} private Klasse MyLicenseCheckerCallback implementiert LicenseCheckerCallback {public void erlauben (int policyReason) {if (isFinishing ()) {// nicht aktualisieren UI, wenn Aktivität finishing.return ist -}} public void dontAllow (int policyReason) {if (isFinishing ()) {Rücklauf-} keepGoing = false-Intent Absicht = new Intent (MainActivity.this, NotLicensedActivity.class) -intent.putExtra ( "Nachricht "., GetResources () getString (R.string.app_not_licensed) +" (0x "+ Integer.toHexString (policyReason) +") ") - startActivity (Vorsatz) -} public void Application (int errorcode) {if (isFinishing ( )) {} Rücklauf- keepGoing = false-Intent Absicht = new Intent(MainActivity.this,NotLicensedActivity.class)-intent.putExtra("message",getResources().getString(R.string.application_error) + "(0x" + Integer.toHexString (Fehlercode) + ")") - startActivity (Vorsatz) -}} @ Overrideprotected Leere onDestroy () {super.onDestroy () - mChecker.onDestroy () - // Nicht vergessen diese Linie. Ohne sie könnte Ihre Anwendung zum Absturz bringen.}}

Um diesen Beispielcode funktioniert, haben Sie einige zusätzliche Zutaten hinzufügen:

  • In der Haupttätigkeit, ersetzen die Worte Der öffentliche Schlüssel GOES HERE mit Ihrem eigenen Lizenzschlüssel aus den Schritten 6 und 7 in diesem Artikel der Rubrik "einen Lizenzschlüssel für Ihre Anwendung bekommen".

  • Bilden Sie Ihre eigene 20-Nummer SALT-Wert - eine originelle Bezeichnung für eine Reihe von zufällig erzeugten Werte - und fügen Sie den Code der Haupttätigkeit.

  • Erstellen app_not_licensed und Anwendungsfehler String-Ressourcen.

  • In der AndroidManifest.xml-Datei des Projekts.

  • Fügen Sie alle Ihre eigenen App-Code auf dem Beispielcode. (Mit anderen Worten, machen Sie Ihre App tun, was es tun soll - ein Spiel zu spielen, Informationen anzuzeigen, ein Problem zu lösen, oder was auch immer.)

  • Ein ... kreieren NotLicensedActivity Klasse.

    Eine Probe NotLicensedActivity Hier wird kopiert.

    public class NotLicensedActivity erstreckt Aktivität {public void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) -setContentView (R.layout.not_licensed) -String message = getIntent () getExtras () getString ( "message") -.. (( Textview) findViewById (R.id.message_text)) setText (Nachricht). - ((Textview) findViewById (R.id.message_text2)) setText (Nachricht) -.} public void quitApp (view-Ansicht) {finish () -} }
  • Fügen Sie Text Ansichten namens message_text und message_text2 auf Ihre NotLicensedActivity Layout-Datei.

In der Haupttätigkeit, die Essenz der Lizenzprüfung kommt in zwei Teilen (a) dem Aufruf doCheck (), die in Verbindung mit dem Google Play-Server, und (b) die MyLicenseCheckerCallback Innenklasse (die Klasse, auf die Play-Servers Ergebnisse reagiert). Das LicenseCheckerCallback mindestens drei Methoden haben muss - ein zulassen() Verfahren für "Gehen Sie voran und verwenden Sie die App", ein dontAllow () Verfahren für "Sie diese App nutzen nicht zugelassen sind", und ein Anwendungsfehler() Verfahren für "Oh, oh!"

In dem Beispielcode nichts Besonderes in der getan zulassen() Verfahren. In dem dontAllow () und Anwendungsfehler() Methoden eine weitere Aktivität, das gestartet wird, ist benannt NotLicensedActivity. Sie können dies machen NotLicensedActivity tun, was Sie wollen. Was auch immer in der geschieht NotLicensedActivity, ein mach weiter Feld auf falsch, die Haupttätigkeit zu sagen zu nennen Fertig() (in dem auf Wiederaufnahme Methode), wenn sie von der zurückkehr NotLicensedActivity.

Sie können diesen Trick verwenden oder etwas anderes zu tun. In Android, sind Tätigkeiten, die nicht modal. Das heißt, wenn eine Aktivität teilweise eine andere Tätigkeit umfasst, dann kann der Benutzer mit jeder Aktivität interagieren, indem Sie den entsprechenden Teil des Bildschirms berühren. Also, wenn NotLicensedActivity nicht vollständig die Haupttätigkeit überdecken, kann der Benutzer umgehen die NotLicensedActivity durch einen anderen Teil des Bildschirms berühren. Um dies zu verhindern, geschieht, machen die NotLicensedActivity decken den gesamten Bildschirm, der Versuchung zu widerstehen die zu machen NotLicensedActivity aussehen wie ein kleines Dialogfeld.

Testen der App Lizenzierung

Hat Ihre App Lizenzierung arbeiten? Kann lizenzierten Benutzer führen Sie Ihre Anwendung? Und was nicht lizenzierten Benutzer? Können sie Ihre App auch laufen? Sie können herausfinden, nachdem Sie Ihre App und bevor Sie tatsächlich veröffentlichen Sie Ihre App hochgeladen haben. Hier ist wie:

  1. Besuch https://play.google.com/apps/publish/.

  2. Im sehr äußersten linken Teil der Entwicklerkonsole Seite, wählen Sie Einstellungen.

    Ihr Konto der Seite Einstellungen angezeigt.

  3. Auf der linken Seite der Seite Einstellungen, wählen Sie Kontodetails.

  4. Blättern Sie in der Kontodetails Seite nach unten, bis Sie eine Lizenz Testing-Bereich.

    In diesem License Testing Abschnitt finden Sie ein Textfeld mit der Bezeichnung Google Mail-Konten mit Testing Zugang finden. Sie finden auch eine Dropdown-Liste markierten Lizenztestantwort finden.

    Ihre Lizenztestantwort Optionen
    Ihre Lizenztestantwort Optionen
  5. In den Google Mail-Konten mit Testing Zugriffsfeld die E-Mail-Adresse für einen oder mehrere Gmail-Konten.

    Wenn Sie mehrere E-Mail-Adresse eingeben, verwenden Sie ein Komma eine Adresse von einem anderen zu trennen. Menschen, deren Android-Geräte auf diese E-Mail-Adressen registriert sind, werden in der Lage Ihre App auf dem Google Play Store zu finden. (Andere werden sehen Ihre App nicht.)

  6. In der Liste lizenzierten Testantwort, wählen Sie NOT_LICENSED.

    Benutzer, die Ihre App (Benutzer mit der Google Mail-Adressen, die Sie in Schritt 5 aufgelistet) installieren wird diese NOT_LICENSED Antwort bekommen, wenn sie versuchen, die App zu starten.

  7. Sagen Sie den Benutzern in Ihrem Google Mail-Konten-Liste, um zu versuchen das Herunterladen und Installieren der App.

    Wenn der Code der App korrekt ist (zum Beispiel, wenn die onCreate Verfahren in dieser Haupttätigkeit des Artikels wird seine Arbeit) zu tun, des Benutzers wird Ihre Anwendung weiterlaufen nicht in der Lage sein. Das ist genau das, was Sie wollen

  8. Wenn Sie mit den Ergebnissen des Tests zufrieden sind in den Schritten 6 und 7, erneut die Entwicklerkonsole und ändern Antwort des lizenzierten Test LIZENZIERT.

  9. Lassen Sie die Benutzer auf Ihrem Google Mail-Konten Liste Ihrer App erneut zu versuchen läuft.

    Wenn der Code der App korrekt ist (zum Beispiel, wenn die onCreate Verfahren in dieser Haupttätigkeit des Artikels wird seine Arbeit) zu tun, wird der Benutzer ist in der Lage sein, Ihre Anwendung weiterlaufen.

  10. Versuchen Sie, andere Optionen in der lizenzierten Testantwortliste - Optionen wie LICENSED_OLD_KEY, ERROR_SERVER_FAILURE, und so weiter.

    Denken Sie daran, es gibt nicht so etwas wie zu viel getestet.

Menü