Последствия поддержки нескольких пользователей Android (новое в версии 4.2) для модели данных на стороне сервера (например, android_id)

Google только что выпустил Android 4.2, который включает поддержку нескольких профилей пользователей на одном устройстве: http://developer.android.com/about/versions/android-4.2.html#MultipleUsers.

Google говорит, что это будет прозрачно для приложений, но я думаю, что это может повлиять на модель данных, используемую для идентификации устройств, пользователей и установок.

Одна из проблем - использование android_id. Совет на указанной выше странице предлагает идентифицировать устройство одним из методов, отличным от android_id, но я считаю, что android_id очень широко используется для этой цели.

Мой главный вопрос: есть ли у каждого профиля пользователя свой android_id и каковы его последствия?

Новый android_id генерируется при установке новой ОС или при выполнении аппаратного сброса - возможно, новый будет сгенерирован при создании нового профиля пользователя (это вопрос №1)? Я думаю, что, вероятно, нет, поэтому приложение может быть установлено несколько раз для одного и того же android_id - я думаю, что это может испортить модель данных на стороне сервера для некоторых приложений.

В любом случае, в зависимости от того, как вы идентифицируете устройство, теперь вы можете обнаружить, что конкретное приложение может иметь несколько установок на одном устройстве.

Другой вопрос - пользователи. Предположительно, каждый профиль может иметь любое количество учетных записей Google, но одна учетная запись Google должна быть связана с магазином воспроизведения в каждом профиле. Я думаю, также возможно, что ваше приложение может иметь несколько одновременных установок с одним и тем же устройством (по android_id) И одним и тем же пользователем. Я думаю, что обычное использование функции нескольких профилей будет заключаться в том, что один пользователь будет иметь домашний и рабочий профили на своем телефоне - обычно с использованием разных учетных записей Google, но в некоторых случаях у них может быть одна и та же учетная запись Google в каждом профиле (например, так им не нужно платить за вещи дважды).

Боковое примечание
Вот аналогичное обсуждение ANDROID_ID на новой платформе ARC (Android в Chrome). Будьте осторожны - поведение на ARC не такое, как на Android.


person Tom    schedule 15.11.2012    source источник


Ответы (2)


(Никто не ответил на мой вопрос, но теперь у меня была возможность лично протестировать 4.2.)

Ответ заключается в том, что у каждого профиля есть свой android_id.

Если подумать, это, вероятно, имеет наибольший смысл и вызовет меньше всего проблем. Это должно привести к тому, что большинство систем будут видеть разные профили на устройстве как разные устройства, что на самом деле не должно быть проблемой. Единственная проблема - это системы, которые правильно идентифицировали устройство, например. на основе MAC-адреса Wi-Fi или bt, серийного номера или IMEI, а затем ожидалось, что несколько android_id на этом одном устройстве представляют собой последовательные установки ОС на этом устройстве. (Скорее наоборот, будет безопаснее ошибиться.)

person Tom    schedule 20.11.2012
comment
Кто-то заметил, что документы противоречат поведению 4.2.1 на N7. Они создали проблема здесь. - person Tom; 16.01.2013
comment
Извините, можете ли вы уточнить, основан ли профиль на пользователе? Если да, то знаете ли вы, может ли тот же пользователь на другом устройстве создать такой же ANDROID_ID? - person Wayne Phipps; 02.08.2013
comment
Он не основан на пользователях - каждый «профиль» может иметь несколько учетных записей пользователей. И нет, вы не должны получать одинаковый ANDROID_ID на двух разных устройствах. - person Tom; 03.08.2013

Да, у каждого профиля пользователя есть свой ANDROID_ID. Теперь это задокументировано здесь:

Примечание. Если на устройстве несколько пользователей (доступно на определенные устройства под управлением Android 4.2 или выше), каждый пользователь отображается как полностью отдельное устройство, поэтому значение ANDROID_ID уникально для каждого пользователя.

Остерегайтесь, однако, известных производителей, которые проваливают реализацию ANDROID_ID. Например, Motorola Droid2 вернул одинаковое значение ANDROID_ID для каждого устройства. По этой причине использование ANDROID_ID для уникальной идентификации профилей пользователей или устройств может быть ненадежным..

person Mark Whitaker    schedule 19.11.2014