Aby bezpiecznie pobierać z Google Play treści z witryn odsyłających, możesz użyć interfejsu instalacji Referrer API w Sklepie Google Play. Biblioteka klienta interfejsu API odesłania do instalacji Play została napisana w języku programowania Java i jest opakowaniem pliku Android Interface Definition Language (AIDL), który definiuje interfejs usługi instalacji strony odsyłającej. Aby uprościć proces programowania, możesz użyć biblioteki klienta interfejsu API odesłania do instalacji Play.
Ten przewodnik zawiera podstawowe informacje o pobieraniu informacji o odesłaniu z Google Play za pomocą biblioteki odsyłającej do instalacji z Google Play.
Aktualizowanie zależności aplikacji
Dodaj ten wiersz do sekcji zależności pliku build.gradle
aplikacji:
Odlotowy
dependencies { ... implementation "com.android.installreferrer:installreferrer:2.2" }
Kotlin
dependencies { ... implementation("com.android.installreferrer:installreferrer:2.2") }
Łączę z Google Play
Zanim zaczniesz korzystać z biblioteki interfejsu Play Referrer API, musisz nawiązać połączenie z aplikacją Sklep Play, wykonując te czynności:
- Wywołaj metodę
newBuilder()
, aby utworzyć instancję klasyInstallReferrerClient
. Wywołaj
startConnection()
, aby nawiązać połączenie z Google Play.Metoda
startConnection()
jest asynchroniczna, więc aby otrzymać wywołanie zwrotne po zakończeniu działaniastartConnection()
, musisz zastąpić wartośćInstallReferrerStateListener
.Zastąp metodę
onInstallReferrerSetupFinished()
, aby otrzymywać powiadomienia o zakończeniu wywołania zwrotnego. Metoda ta jest wywoływana z kodem odpowiedzi, którego musisz używać do obsługi różnych stanów.OK
oznacza, że udało się nawiązać połączenie. Pozostałe stałeInstallReferrerResponse
odpowiadają różnym rodzajom błędów.Zastąp metodę
onInstallReferrerServiceDisconnected()
w celu obsługi utraconych połączeń z Google Play. Na przykład klient biblioteki odsyłającej instalacji z Play może utracić połączenie, jeśli usługa Sklep Play jest aktualizowana w tle. Klient biblioteki musi wywołać metodęstartConnection()
, aby ponownie uruchomić połączenie przed wysłaniem kolejnych żądań.
Ten kod pokazuje, jak uruchomić i przetestować połączenie z aplikacją Sklep Play:
Kotlin
private lateinit var referrerClient: InstallReferrerClient referrerClient = InstallReferrerClient.newBuilder(this).build() referrerClient.startConnection(object : InstallReferrerStateListener { override fun onInstallReferrerSetupFinished(responseCode: Int) { when (responseCode) { InstallReferrerResponse.OK -> { // Connection established. } InstallReferrerResponse.FEATURE_NOT_SUPPORTED -> { // API not available on the current Play Store app. } InstallReferrerResponse.SERVICE_UNAVAILABLE -> { // Connection couldn't be established. } } } override fun onInstallReferrerServiceDisconnected() { // Try to restart the connection on the next request to // Google Play by calling the startConnection() method. } })
Java
InstallReferrerClient referrerClient; referrerClient = InstallReferrerClient.newBuilder(this).build(); referrerClient.startConnection(new InstallReferrerStateListener() { @Override public void onInstallReferrerSetupFinished(int responseCode) { switch (responseCode) { case InstallReferrerResponse.OK: // Connection established. break; case InstallReferrerResponse.FEATURE_NOT_SUPPORTED: // API not available on the current Play Store app. break; case InstallReferrerResponse.SERVICE_UNAVAILABLE: // Connection couldn't be established. break; } } @Override public void onInstallReferrerServiceDisconnected() { // Try to restart the connection on the next request to // Google Play by calling the startConnection() method. } });
Uzyskiwanie strony odsyłającej do instalacji
Po nawiązaniu połączenia z aplikacją Sklep Play pobierz szczegóły z strony odsyłającej do instalacji, wykonując te czynności:
Aby zwrócić instancję
ReferrerDetails
, użyj metody zsynchronizowanejgetInstallReferrer()
.Aby uzyskać szczegółowe informacje o stronie odsyłającej instalacji, użyj metod udostępnianych przez klasa
ReferrerDetails
.
Poniższy kod pokazuje, jak można uzyskać dostęp do informacji o stronie odsyłającej do instalacji:
Kotlin
val response: ReferrerDetails = referrerClient.installReferrer val referrerUrl: String = response.installReferrer val referrerClickTime: Long = response.referrerClickTimestampSeconds val appInstallTime: Long = response.installBeginTimestampSeconds val instantExperienceLaunched: Boolean = response.googlePlayInstantParam
Java
ReferrerDetails response = referrerClient.getInstallReferrer(); String referrerUrl = response.getInstallReferrer(); long referrerClickTime = response.getReferrerClickTimestampSeconds(); long appInstallTime = response.getInstallBeginTimestampSeconds(); boolean instantExperienceLaunched = response.getGooglePlayInstantParam();
Uwaga: informacje o stronie odsyłającej do instalacji będą dostępne przez 90 dni i nie zmienią się, chyba że aplikacja zostanie ponownie zainstalowana. Aby uniknąć niepotrzebnych wywołań interfejsu API w aplikacji, wywołaj interfejs API tylko raz podczas pierwszego wykonania po instalacji.
Zamykam połączenie z usługą
Po uzyskaniu informacji o stronie odsyłającej wywołaj w instancji InstallReferrerClient
metodę endConnection()
, aby zamknąć połączenie. Zamknięcie połączenia pozwoli
uniknąć wycieków i problemów z wydajnością.
Więcej informacji znajdziesz w dokumentacji biblioteki odsyłającej do instalacji z Play.