В некоторых случаях, например для аналитики или предотвращения мошенничества на определенном устройстве, вам может понадобиться сопоставить данные об использовании или действиях в наборе приложений, принадлежащих вашей организации. Сервисы Google Play предлагают вариант, обеспечивающий конфиденциальность, – идентификатор набора приложений.
Область действия идентификатора набора приложений
Идентификатор набора приложений может иметь одну из следующих областей действия. Чтобы определить, с какой областью действия связан определенный идентификатор, вызовите getScope().
Область действия для разработчиков Google Play
Для приложений, установленных из Google Play, API идентификатора набора приложений возвращает идентификатор, относящийся к набору приложений, опубликованных в одном аккаунте разработчика Google Play.
Предположим, вы опубликовали два приложения в аккаунте разработчика Google Play, и оба они установлены на одном устройстве из Google Play. У приложений на устройстве одинаковый идентификатор набора приложений. Идентификатор будет одинаковым, даже если приложения подписаны разными ключами.
Область действия приложения
При любом из следующих условий SDK идентификатора набора приложений возвращает идентификатор, уникальный для вызывающего приложения на определенном устройстве:
- Приложение установлено не из Google Play.
- Сервисам 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'
}
В следующем фрагменте кода показано, как асинхронно получить идентификатор набора приложений с помощью Tasks API в сервисах 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();
}
});
Подробнее об универсальном уникальном идентификаторе…