Intereting Posts
У указанного ребенка уже есть родитель. Вы должны сначала вызвать removeView () родительского родителя (Android) Получить содержание uri из пути к файлу в android Android. Отображать контакты в виде списка GCM: java.lang.noclassdeffounderror: com.google.android.gcm.GCMRegistrar Есть ли какой-либо платежный шлюз, ориентированный на Индию? Как оживить добавление или удаление строк ListView Android «Ожидание устройства» при отладке на телефоне HttpEntity устарела на Android сейчас, какова альтернатива? Команды Android ADB для получения свойств устройства Глобальная переменная / константа в действии Определить существование функции Google Streetview Как отличить, вызывается ли onDestroy () как часть последовательности изменения конфигурации? Какой документ является Play Store, ожидающий загрузки, чтобы показать, что я не выдаю себя за других? Вкладки Приближается панель действий при раздувании пользовательского макета Robolectric 3.0 InflateException с пользовательским фрагментом карты

Ограничить (ограничить) установку приложений на одну учетную запись (с учетом уникальных устройств) в Android

Я опубликовал приложение для Android.

Проблема в том, что если кто-то покупает мое приложение, он может установить его на нескольких устройствах с использованием той же учетной записи.

Могу ли я ограничить установку несколькими (допустим, 2) уникальными устройствами на одну учетную запись?

Если пользователь хочет использовать его на другом устройстве с той же учетной записью, ему сначала придется удалить его из другого.

Например, MyBackup Pro разрешает только два уникальных устройства.

Как я могу добиться этого в своем приложении?

Solutions Collecting From Web of "Ограничить (ограничить) установку приложений на одну учетную запись (с учетом уникальных устройств) в Android"

Google помогает вам в этом .

Эта страница поможет вам настроить ее.

Более конкретно, похоже, что вы хотите добавить DeviceLimiter :

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

LVL поддерживает лицензирование каждого устройства, предоставляя интерфейс DeviceLimiter, который объявляет один метод allowDeviceAccess (). Когда LicenseValidator обрабатывает ответ с сервера лицензирования, он вызывает allowDeviceAccess (), передавая строку идентификатора пользователя, извлеченную из ответа.

Если вы не хотите поддерживать ограничение устройства, работа не требуется – класс LicenseChecker автоматически использует стандартную реализацию NullDeviceLimiter. Как следует из названия, NullDeviceLimiter является классом «no-op», метод allowDeviceAccess () просто возвращает ответ LICENSED для всех пользователей и устройств.

Внимание: лицензирование на уровне устройства не рекомендуется для большинства приложений, поскольку:

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

Исходный код для DeviceLimiter можно найти здесь.

Источник в значительной степени объясняет, как вы будете использовать DeviceLimiter для реализации того, что вы хотите:

 /* The LICENSED response from the server contains a user identifier unique to * the <application, user> pair. The developer can send this identifier * to their own server along with some device identifier (a random number * generated and stored once per application installation, * {@link android.telephony.TelephonyManager#getDeviceId getDeviceId}, * {@link android.provider.Settings.Secure#ANDROID_ID ANDROID_ID}, etc). * * The more sources used to identify the device, the harder it will be for an * attacker to spoof. 

И ответы Аскорбина и Яряна приятно объяснить.

По моим знаниям Его можно управлять двумя способами.

1. Google самостоятельно

2. Своей собственной реализацией

Позволяет проверять один за другим,

1. Google Google

Ответ Аскорбина объясняет, как его реализовать и как Google управляет им. Так надейтесь, что у вас это получилось. Если нет, то дайте мне знать.

2. Своей собственной реализацией

Если у вас есть собственный сервер, вы можете поместить код, который проверяет установленные приложения. Каждое устройство имеет уникальный номер IMEI, поэтому вы можете легко отслеживать один номер IMEI и блокировать или разрешать установку приложения или работу приложения.

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

Надеюсь, вы поняли.

Не стесняйтесь комментировать. 🙂

Вы можете идентифицировать устройство, например, через MAC-адрес модуля wlan или IMEI (оба могут быть получены через системные службы Android). Затем вы определяете установку с вашим сервером, если сервер отвечает, что этот пользователь / клиент уже установил это на другом устройстве, вы заблокируете приложение и сообщите пользователю, что происходит.