5

Es gibt Anwendungen (wie https://play.google.com/store/apps/details?id=com.teslacoilsw.launcher), die frei sind, aber deren Funktionen bezahlt durch den Kauf einer anderen App (in diesem Fall ist dies ein https://play.google.com/store/apps/details?id=com.teslacoilsw.launcher.prime)Wie funktioniert der Kauf einer App, um kostenpflichtige Funktionen einer anderen App zu aktivieren?

Wie funktionierts aktiviert sein?

Meine Vermutung ist, dass die kostenlosen Apps eine explizite Absicht startet und erkennen kann, ob die App über eine try/catch-Struktur vorhanden ist. Der Nachteil davon ist, dass dies leicht von jemandem umkreist werden kann, der eine App mit dem gleichen Paketnamen erstellt und alle möglichen Intent-Filter angibt.

Ist dies, wie es funktioniert, oder ist es eine andere Möglichkeit?

Antwort

0

Der einfachste Weg ist, startActivityForResult(...) von App A gegen eine Aktivität von App B zu verwenden, die mit einem IntentFilter konfiguriert werden muss, um von einer äußeren App verwendet zu werden. Innerhalb der B angerufenen Aktivität können Sie auch überprüfen, wer mit getCallingActivity() anruft. Sie finden ein Beispiel here.

Bevor Sie die Aktivität starten, können Sie testen, ob B installiert ist (mit dem PackageManager) oder Sie können einfach die Aktivität starten und die Ausnahme abfangen. In der aufgerufenen Aktivität können Sie die Signatur des aufrufenden Pakets mithilfe der Methode the PackageManager.checkSignature(String,String) überprüfen. Übergeben Sie den Paketnamen von A und B, und wenn die Signatur übereinstimmt, führen Sie die Logik aus.

+0

Kann dies umgangen werden, wenn ich eine App mit demselben Paketnamen erstelle, die die gleiche Absicht beantwortet? Nicht veröffentlichen, sondern nur lokal installieren, um die Funktionen der anderen App zu aktivieren. – zundi

+0

Aktualisiert die Antwort –

+0

'PackageManager.checkSignature()' war, was ich gesucht habe. Gibt "true" zurück, wenn beide mit demselben Zertifikat signiert sind, was bedeutet, dass es nicht einfach umgangen werden kann, selbst wenn Sie den Quellcode der anderen App haben. Vielen Dank – zundi

2

Es gibt verschiedene Möglichkeiten, das zu tun. Eine Möglichkeit besteht darin, einen Inhaltsanbieter abzufragen, der mit einer speziellen Erlaubnis geschützt wird.

Ich habe ziemlich lange veröffentlicht vor auf Github eine Bibliothek, die dies tut, hilft: Android Unlocker Library.

Das ist eine gute Option, wenn Sie mit Geräten außerhalb des Google-Ökosystems zu tun haben. In Bezug auf Entwickler bieten In-App-Käufe laut mir jedoch eine viel bessere Benutzererfahrung (und damit mehr Verkäufe).

+0

Welche Sondergenehmigung? – zundi

Verwandte Themen