Identyfikowanie aplikacji należących do dewelopera
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
W przypadku zastosowań takich jak analiza czy zapobieganie oszustwom na danym urządzeniu może być konieczne powiązanie korzystania z zestawu aplikacji należących do Twojej organizacji lub działań w nich wykonywanych. Usługi Google Play oferują opcję zapewniającą ochronę prywatności o nazwie identyfikator zestawu aplikacji.
Zakres identyfikatora zestawu aplikacji
Identyfikator zestawu aplikacji może mieć jeden z tych zakresów: Aby określić, z jakim zakresem jest powiązany dany identyfikator, wywołaj funkcję getScope().
Zakres dewelopera w Google Play
W przypadku aplikacji zainstalowanych ze Sklepu Google Play interfejs App Set ID API zwraca identyfikator ograniczony do zestawu aplikacji opublikowanych na tym samym koncie dewelopera w Google Play.
Załóżmy na przykład, że publikujesz 2 aplikacje na koncie dewelopera w Google Play i obie są zainstalowane na tym samym urządzeniu ze Sklepu Google Play. Aplikacje mają na tym urządzeniu ten sam identyfikator zestawu aplikacji. Identyfikator jest taki sam, nawet jeśli aplikacje są podpisane różnymi kluczami.
Zakres aplikacji
W każdym z tych przypadków pakiet SDK identyfikatora zestawu aplikacji zwraca identyfikator unikalny dla samej aplikacji wywołującej na danym urządzeniu:
Aplikacja jest instalowana przez instalator inny niż Sklep Google Play.
Usługi Google Play nie mogą określić konta dewelopera w Google Play należącego do 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 dla danego zestawu aplikacji zainstalowanych z Google Play na urządzeniu może zostać zresetowany w każdej z tych sytuacji:
Grupy aplikacji, które mają tę samą wartość identyfikatora, nie korzystały z interfejsu App Set ID API od ponad 13 miesięcy.
Ostatnia aplikacja z danego zestawu aplikacji jest odinstalowywana 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
Poniższy fragment kodu pokazuje przykładowy plik build.gradle, który korzysta z biblioteki identyfikatora zestawu aplikacji:
Ten przykładowy fragment kodu pokazuje, jak asynchronicznie pobrać identyfikator zestawu aplikacji za pomocą interfejsu Tasks API w usługach Google Play:
Kotlin
valclient=AppSet.getClient(applicationContext)asAppSetIdClientvaltask:Task<AppSetIdInfo>=client.appSetIdInfoasTask<AppSetIdInfo>task.addOnSuccessListener({// Determine current scope of app set ID.valscope:Int=it.scope// Read app set ID value, which uses version 4 of the// universally unique identifier (UUID) format.valid:String=it.id})
Java
Contextcontext=getApplicationContext();AppSetIdClientclient=AppSet.getClient(context);Task<AppSetIdInfo>task=client.getAppSetIdInfo();task.addOnSuccessListener(newOnSuccessListener<AppSetIdInfo>(){@OverridepublicvoidonSuccess(AppSetIdInfoinfo){// Determine current scope of app set ID.intscope=info.getScope();// Read app set ID value, which uses version 4 of the// universally unique identifier (UUID) format.Stringid=info.getId();}});
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-09-05 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-09-05 UTC."],[],[],null,["For use cases such as analytics or fraud prevention on a given device, you may\nneed to correlate usage or actions across a set of apps owned by your\norganization. [Google Play services](https://developers.google.com/android)\noffers a privacy-friendly option called [*app set ID*](https://developers.google.com/android/reference/com/google/android/gms/appset/AppSetIdInfo).\n\nApp set ID scope\n\nThe app set ID can have one of the following defined scopes. To determine which\nscope a particular ID is associated with, call\n[`getScope()`](https://developers.google.com/android/reference/com/google/android/gms/appset/AppSetIdInfo#getScope()).\n| **Caution:** When Google Play services updates from a version that only supports app scope to a version that supports developer scope, the app set ID's value is reset automatically, without any developer action. See [other reasons developers\n| shouldn't rely on a cached value of the app set ID](#dont-rely-on-cached-value).\n\nGoogle Play developer scope **Note:** The app set SDK attempts to return app set IDs that have the developer scope without any additional developer action, unless the app satisfies the conditions for app scope, described below.\n\nFor apps that are installed by the Google Play store, the app set ID API returns\nan ID scoped to the set of apps published under the same Google Play developer\naccount.\n\nFor example, suppose you publish two apps under your Google Play developer\naccount and both apps are installed on the same device through the Google Play\nstore. The apps share the same app set ID on that device. The ID is the same\neven if the apps are signed by different keys.\n\nApp scope\n\nUnder any of the following conditions, the app set ID SDK returns an ID unique\nto the calling app itself on a given device:\n\n- The app is installed by an installer other than the Google Play store.\n- Google Play services is unable to determine an app's Google Play developer account.\n- The app is installed on a device without Google Play services.\n\nDon't rely on a cached value of app set ID\n\nUnder any of the following conditions, the app set ID for a given set of Google\nPlay store-installed apps on a device can be reset:\n\n- The app set ID API hasn't been accessed by the groups of apps that share the same ID value for over 13 months.\n- The last app from a given set of apps is uninstalled from the device.\n- The user performs a factory reset of the device.\n\nYour app should use the SDK to retrieve the ID value every time it's needed.\n\nAdd the app set ID SDK to your app\n\nThe following snippet shows an example `build.gradle` file that uses the app set\nID library: \n\n dependencies {\n implementation 'com.google.android.gms:play-services-appset:16.1.0'\n }\n\nThe following sample snippet demonstrates how you can retrieve the app set ID\nasynchronously using the [Tasks\nAPI](https://developers.google.com/android/guides/tasks) in Google Play\nservices: \n\nKotlin \n\n```kotlin\nval client = AppSet.getClient(applicationContext) as AppSetIdClient\nval task: Task\u003cAppSetIdInfo\u003e = client.appSetIdInfo as Task\u003cAppSetIdInfo\u003e\n\ntask.addOnSuccessListener({\n // Determine current scope of app set ID.\n val scope: Int = it.scope\n\n // Read app set ID value, which uses version 4 of the\n // https://en.wikipedia.org/wiki/Universally_unique_identifier.\n val id: String = it.id\n})\n```\n\nJava \n\n```java\nContext context = getApplicationContext();\nAppSetIdClient client = AppSet.getClient(context);\nTask\u003cAppSetIdInfo\u003e task = client.getAppSetIdInfo();\n\ntask.addOnSuccessListener(new OnSuccessListener\u003cAppSetIdInfo\u003e() {\n @Override\n public void onSuccess(AppSetIdInfo info) {\n // Determine current scope of app set ID.\n int scope = info.getScope();\n\n // Read app set ID value, which uses version 4 of the\n // https://en.wikipedia.org/wiki/Universally_unique_identifier.\n String id = info.getId();\n }\n});\n```"]]