Для таких задач, как аналитика или предотвращение мошенничества на данном устройстве, вам может потребоваться сопоставить использование или действия в наборе приложений, принадлежащих вашей организации. Сервисы Google Play предлагают функцию, обеспечивающую конфиденциальность, — идентификатор набора приложений .
Область действия идентификатора набора приложений
Идентификатор набора приложений может иметь одну из следующих определённых областей действия. Чтобы определить, с какой областью действия связан конкретный идентификатор, вызовите метод getScope()
.
Область применения разработчика Google Play
Для приложений, установленных из магазина Google Play, API идентификатора набора приложений возвращает идентификатор, привязанный к набору приложений, опубликованных под той же учетной записью разработчика Google Play.
Например, предположим, что вы публикуете два приложения под своей учётной записью разработчика Google Play, и оба приложения установлены на одном устройстве через магазин Google Play. На этом устройстве приложения используют один и тот же идентификатор набора приложений. Этот идентификатор остаётся тем же, даже если приложения подписаны разными ключами.
Область применения приложения
При любом из следующих условий SDK набора идентификаторов приложений возвращает идентификатор, уникальный для самого вызывающего приложения на данном устройстве:
- Приложение установлено не через Google Play Store, а через установщик.
- Сервисы Google Play не могут определить учетную запись разработчика Google Play приложения.
- Приложение установлено на устройстве без сервисов Google Play.
Не полагайтесь на кэшированное значение идентификатора набора приложений.
При любом из следующих условий идентификатор набора приложений для заданного набора приложений, установленных в магазине Google Play на устройстве, может быть сброшен:
- API идентификатора набора приложений не использовался группами приложений, имеющими одинаковое значение идентификатора, в течение более 13 месяцев.
- Последнее приложение из заданного набора приложений удаляется с устройства.
- Пользователь выполняет сброс настроек устройства к заводским.
Ваше приложение должно использовать SDK для получения значения идентификатора каждый раз, когда это необходимо.
Добавьте идентификатор набора приложений SDK в свое приложение
В следующем фрагменте показан пример файла build.gradle
, который использует библиотеку идентификаторов набора приложений:
dependencies {
implementation 'com.google.android.gms:play-services-appset:16.1.0'
}
В следующем примере фрагмента показано, как можно асинхронно получить идентификатор набора приложений с помощью API задач в сервисах Google Play:
Котлин
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 })
Ява
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(); } });