Подтвердить что ты не робот

Какой лучший способ однозначно идентифицировать пользователей Android на сервере?

Как мне найти идентификацию пользователя Android на сервере. Должен ли я получить номер IMSI и некоторый алгоритм соления? С учетом ограничений пространства и производительности андроида есть библиотека, которая не слишком тяжелая, что я могу использовать для расчета?

4b9b3361

Ответ 1

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

Другим вариантом может быть учетная запись Google, привязанная к устройству? Или это сократит вашу целевую аудиторию для вас? Но если вы создаете приложение, которое расширяет какой-либо инструмент Google, приложение или что-то еще, то у пользователя уже будет аккаунт Google, чтобы ваше приложение также могло использовать его для идентификации пользователя.

Ответ 2

Как указано developer.android:

Приложения обычно пытаются запомнить пользователя, используя один из трех методов:

  • Попросите пользователя ввести имя пользователя
  • Получить уникальный идентификатор устройства, чтобы запомнить устройство.
  • Получить встроенную учетную запись из AccountManager

Вариант (1) проблематичен. Во-первых, попросить пользователя ввести что-либо перед входом в приложение, автоматически сделает ваше приложение менее привлекательным. Во-вторых, нет гарантии, что выбранное имя пользователя будет уникальным.

Вариант (2) менее обременителен для пользователя, но это сложно сделать правильно. Что еще более важно, это позволяет вам запоминать пользователя только на одном устройстве. Представьте, что вы разочарованы тем, кто обновляется до нового нового устройства, только чтобы узнать, что ваше приложение больше не запоминает их.

Вариант (3) является предпочтительным методом. Диспетчер учетных записей позволяет вам получать информацию об учетных записях, хранящихся на пользовательском устройстве. Как мы увидим на этом уроке, использование Account Manager позволяет вам запомнить своего пользователя, независимо от того, сколько устройств пользователь может владеть, добавив всего несколько дополнительных кранов в ваш интерфейс.

Ответ 3

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

Ответ 4

Чтобы определить пользователя, я должен подумать, что использование учетной записи google - лучший вариант, см. ответ на Создание серийного номера для конкретного устройства

Если вы просто хотите указать экземпляр своего приложения, почему бы не позволить серверу распространять ID: s?

Когда ваше приложение запускается, получите SharedPreferences и проверьте, имеет ли значение "myid" значение, если нет, затем запрашивает идентификатор с сервера, который вы храните как "myid" в SharedPreferences. Этот идентификатор сохранит обновления приложений (но не удалит/переустановит).

На стороне сервера сохраните все зарегистрированные идентификаторы и убедитесь, что ваш сервер распространяет уникальные идентификаторы. Таким образом, неприятные люди, взламывающие ваш сервер, не могут использовать идентификатор для идентификации ваших пользователей;)