Как определить пользователя приложения, чтобы он не мог притворяться кем-то другим - PullRequest
1 голос
/ 17 июля 2011

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

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

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

Есть ли другие варианты для архивирования этого поведения?

Ответы [ 4 ]

1 голос
/ 17 июля 2011

Что вы хотите сделать, это отслеживать установки.Это можно сделать, получив уникальный идентификатор, а затем сохранив его с помощью общих настроек.Вы можете положить это в папку на SD-карте, но я не думаю, что меня раздражает такое поведение в приложениях.Вместо того, чтобы помещать файл на SD-карту, нужно сделать резервную копию файла с помощью BackupManger и загрузить его в облако.

Вы можете найти информацию о BackupManager здесь: Резервное копирование данных

и короткая часть этого видео об отслеживании установок здесь, 16:30 мин. Через: Google I / O 2011: советы для профессионалов

Я очень рекомендую вам (всем) посмотретьвидео, которое проходит через множество ошибок новичков и профессионалов.

Читая о BackupManager, вы обнаружите, что, как и все другие решения, он не будет работать на всех устройствах.Я не думаю, что это будет вашей большой заботой, это будет небольшая группа людей, которые могут обойти ваш окончание пробного периода, но всегда будут.Потратьте время на разработку своего приложения и сделайте его лучше.

0 голосов
/ 17 июля 2011

Существует ли уникальный идентификатор устройства Android?

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

0 голосов
/ 17 июля 2011

Возможно, вы захотите попробовать:

import android.provider.Settings.System;

..

String android_id = System.getString(this.getContentResolver(), System.ANDROID_ID);

Хотя некоторые устройства, по-видимому, возвращают одно и то же значение для этого, что, я думаю, противоречит тому, что говорится в документации API. Возможно, полезно использовать это в качестве дополнительной проверки.

Однако постарайтесь с осторожностью отправлять на сервер личные данные, такие как IMEI, номер телефона и т. Д., Поскольку пользователи по праву начинают беспокоиться о том, что такие вещи передаются в эфир. Вы всегда можете сделать хеш IMEI (если он доступен, не могу вспомнить, если не считать его головы) и добавить его в ANDROID_ID, создавая что-то, что будет более или менее уникальным. Может быть, в дополнение к этому хэшировать некоторые другие детали, чтобы действительно гарантировать уникальность, поскольку хэши могут и будут конфликтовать.

0 голосов
/ 17 июля 2011

Возможно, вы захотите прочитать это сообщение из блога разработчиков Android.Они рекомендуют ANDROID-ID, хотя он имеет свои недостатки.

...