Идентификатор Google ID
Выпущено в I / O 2015; на Android требуются игровые сервисы 7.5.
https://developers.google.com/instance-id/
https://developers.google.com/instance-id/guides/android-implementation
InstanceID iid = InstanceID.getInstance( context ); // Google docs are wrong - this requires context
String id = iid.getId(); // blocking call
Похоже, Google намеревается использовать этот идентификатор для идентификации установок через Android, Chrome и iOS.
Он идентифицирует установку, а не устройство, но опять же, ANDROID_ID (который является принятым ответом) теперь больше не идентифицирует устройства. Во время выполнения ARC для каждой установки генерируется новый ANDROID_ID ( подробности здесь ), как и этот новый идентификатор экземпляра. Кроме того, я думаю, что большинство из нас на самом деле ищут определение установок (не устройств).
Преимущества экземпляра ID
Мне кажется, что Google намеревается использовать его для этой цели (с указанием ваших установок), он кроссплатформенный и может использоваться для ряда других целей (см. Ссылки выше).
Если вы используете GCM, то в конечном итоге вам понадобится использовать этот идентификатор экземпляра, потому что он нужен вам для получения токена GCM (который заменяет старый регистрационный идентификатор GCM).
Недостатки / проблемы
В текущей реализации (GPS 7.5) идентификатор экземпляра извлекается с сервера, когда ваше приложение запрашивает его. Это означает, что вышеуказанный вызов является блокирующим вызовом - в моем ненаучном тестировании это занимает 1-3 секунды, если устройство подключено к сети, и 0,5-1,0 секунды, если устройство находится в автономном режиме (предположительно, это то, сколько времени он ожидает, прежде чем сдаться и сгенерировать случайный идентификатор). Это было протестировано в Северной Америке на Nexus 5 с Android 5.1.1 и GPS 7.5.
Если вы используете ID для целей, для которых они предназначены - например. аутентификация приложения, идентификация приложения, GCM - я думаю, что эти 1-3 секунды могут быть неприятными (в зависимости от вашего приложения, конечно).