本文介绍了在 Android 中限制(限制)每个帐户(由唯一设备确定)的应用安装的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经发布了一个 Android 应用.

问题是,如果有人购买了我的应用,他可以使用同一个帐户将其安装在多台设备上.

我可以将安装限制为每个帐户的几个(比如说 2 个)唯一设备吗?

如果用户想在另一个设备上使用相同的帐户,他必须先从另一个设备上卸载.

例如,MyBackup Pro 只允许两个唯一的设备.

如何在我的应用中实现这一点?

解决方案

Google 帮你做到这一点

一个>.

此页面可帮助您进行设置.

更具体地说,您似乎想添加一个 DeviceLimiter:

在某些情况下,您可能希望您的政策限制允许使用单个许可证的实际设备.这个会防止用户将许可的应用程序移动到多个设备并在相同的设备上使用应用程序帐户ID.它还会阻止用户共享"通过提供与许可给其他个人,然后他们可以登录该帐户在他们的设备上访问应用程序的许可证.

LVL 通过提供 DeviceLimiter 支持按设备许可接口,它声明了一个方法,allowDeviceAccess().当一个LicenseValidator 正在处理来自许可服务器的响应,它调用 allowDeviceAccess(),传递从回应.

如果您不想支持设备限制,则无需进行任何工作 —LicenseChecker 类自动使用默认实现称为 NullDeviceLimiter.顾名思义,NullDeviceLimiter 是一个no-op"类,其 allowDeviceAccess() 方法只返回一个所有用户和设备的 LICENSED 响应.

注意:对于大多数应用程序,不建议按设备进行许可因为:

它要求您提供一个后端服务器来管理用户和设备映射,并且可能会无意中导致用户拒绝访问他们合法购买的应用程序在另一台设备上.

DeviceLimiter 的源代码 可以在这里找到.

来源几乎解释了您将如何使用 DeviceLimiter 来实现您想要的:

/* 来自服务器的 LICENSED 响应包含一个唯一的用户标识符* <应用程序,用户>一对.开发者可以发送这个标识符* 到他们自己的服务器以及一些设备标识符(一个随机数* 每个应用程序安装生成和存储一次,* {@link android.telephony.TelephonyManager#getDeviceId getDeviceId},* {@link android.provider.Settings.Secure#ANDROID_ID ANDROID_ID} 等).** 用于识别设备的来源越多,就越难识别* 攻击者进行欺骗.

I have published an Android app.

Problem is, if someone buys my app, he can install it on several devices using the same account.

Can I limit the installation to a few (let's say 2) unique devices per account?

If the user wants to use it on another device with the same account, he will have to uninstall from another one first.

For example, MyBackup Pro only allows two unique devices.

How can I achieve this in my app?

解决方案

Google helps you do this.

This page helps you set it up.

More specifically, it looks like you want to add a DeviceLimiter:

The source code for DeviceLimiter can be found here.

The source pretty much explains how you'd go about using DeviceLimiter to implement what you want:

/* 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.

这篇关于在 Android 中限制(限制)每个帐户(由唯一设备确定)的应用安装的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 18:21