W przypadku takich zastosowań jak statystyki czy zapobieganie oszustwom na danym urządzeniu może być konieczne powiązanie korzystania z aplikacji należących do organizacji. Usługi Google Play oferują opcję chroniącą prywatność użytkowników, zwaną identyfikatorem zestawu aplikacji.
Zasięg identyfikatora zestawu aplikacji
Identyfikator zestawu aplikacji może mieć jeden z tych zdefiniowanych zakresów. Aby określić, z jakim zakresem jest powiązany dany identyfikator, wywołaj funkcję getScope()
.
Zakres dostępu dewelopera w Google Play
W przypadku aplikacji zainstalowanych przez Sklep Google Play interfejs API zwraca identyfikator ograniczony do zestawu aplikacji opublikowanych na tym samym koncie dewelopera w Google Play.
Załóżmy, że publikujesz 2 aplikacje na koncie dewelopera w Google Play i obie są zainstalowane na tym samym urządzeniu w Sklepie Google Play. Aplikacje mają ten sam identyfikator zestawu aplikacji na tym urządzeniu. Identyfikator jest taki sam, nawet jeśli aplikacje są podpisane różnymi kluczami.
Zakres aplikacji
W przypadku każdego z tych warunków pakiet SDK identyfikatora zestawu aplikacji zwraca identyfikator niepowtarzalny dla aplikacji wywołującej na danym urządzeniu:
- Aplikacja została zainstalowana przez instalatora innego niż Sklep Google Play.
- Usługi Google Play nie mogą określić konta dewelopera w Google Play danej aplikacji.
- Aplikacja jest zainstalowana na urządzeniu bez Usług Google Play.
Nie polegaj na wartości identyfikatora zestawu aplikacji zapisanej w pamięci podręcznej
Identyfikator zestawu aplikacji zainstalowanych ze Sklepu Google Play na urządzeniu może zostać zresetowany w jednym z tych przypadków:
- Grupy aplikacji, które mają ten sam identyfikator, nie korzystały z interfejsu API identyfikatora zestawu aplikacji przez ponad 13 miesięcy.
- Ostatnia aplikacja z danego zestawu aplikacji zostaje odinstalowana z urządzenia.
- Użytkownik przywraca urządzenie do ustawień fabrycznych.
Aplikacja powinna używać pakietu SDK do pobierania wartości identyfikatora za każdym razem, gdy jest to potrzebne.
Dodawanie do aplikacji pakietu SDK identyfikatora zestawu aplikacji
Ten fragment kodu pokazuje przykładowy plik build.gradle
, który korzysta z biblioteki identyfikatorów zestawu aplikacji:
dependencies {
implementation 'com.google.android.gms:play-services-appset:16.1.0'
}
Ten przykładowy fragment kodu pokazuje, jak asynchronicznie pobrać identyfikator zestawu aplikacji za pomocą interfejsu API Tasks w usługach Google Play:
Kotlin
val client = AppSet.getClient(applicationContext) as AppSetIdClient val task: Task<AppSetIdInfo> = client.appSetIdInfo as Task<AppSetIdInfo> task.addOnSuccessListener({ // Determine current scope of app set ID. val scope: Int = it.scope // Read app set ID value, which uses version 4 of the // universally unique identifier (UUID) format. val id: String = it.id })
Java
Context context = getApplicationContext(); AppSetIdClient client = AppSet.getClient(context); Task<AppSetIdInfo> task = client.getAppSetIdInfo(); task.addOnSuccessListener(new OnSuccessListener<AppSetIdInfo>() { @Override public void onSuccess(AppSetIdInfo info) { // Determine current scope of app set ID. int scope = info.getScope(); // Read app set ID value, which uses version 4 of the // universally unique identifier (UUID) format. String id = info.getId(); } });