在Android中限制(限制)每个帐户的应用安装(由唯一设备确定)

时间:2013-02-25 10:12:52

标签: android google-play

我发布了一个Android应用。

问题是,如果有人购买我的应用程序,他可以使用同一帐户在多个设备上安装它。

我可以将安装限制为每个帐户的少数(假设2个)唯一设备吗?

如果用户想要在具有相同帐户的其他设备上使用它,则必须先从另一台设备上卸载。

例如,MyBackup Pro only allows two unique devices.

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

3 个答案:

答案 0 :(得分:11)

Google helps you do this

This page helps you set it up.

更具体地说,it looks like you want to add a DeviceLimiter

  

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

     

LVL通过提供DeviceLimiter支持每设备许可   interface,声明一个方法,allowDeviceAccess()。当一个   LicenseValidator正在处理来自许可服务器的响应   调用allowDeviceAccess(),传递从中提取的用户ID字符串   响应。

     

如果您不想支持设备限制,则无需任何工作 -   LicenseChecker类自动使用默认实现   叫做NullDeviceLimiter。顾名思义,NullDeviceLimiter是一个   “no-op”类,其allowDeviceAccess()方法只返回一个   所有用户和设备的许可响应。

     

警告:大多数应用程序不建议使用每设备许可   这是因为:

     

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

DeviceLimiter can be found here.

的源代码

该消息来源几乎解释了如何使用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 :(得分:3)

Ascorbin和yarian的答案都很好解释。

据我所知,可以通过两种方式进行管理。

<强> 1。谷歌自己

<强> 2。通过您自己的实施

让我们逐一检查,

<强> 1。由谷歌自我

Ascorbin的答案解释了如何实施它以及google如何管理它。所以希望你明白了。如果没有,请告诉我。

<强> 2。通过您自己的实施

如果您有自己的服务器,那么您可以添加检查已安装的应用设备的代码。每个设备都有唯一的IMEI号码,因此您可以轻松跟踪相同的IMEI号码并阻止或允许安装应用程序或使用该应用程序。

注意:如果设备配置了相同的帐户,Google允许您在其他设备中使用相同的应用。所以在这种情况下,只能通过检测具有不同IMEI或MAC地址的相同帐户来实现。

希望你明白这一点。

随意发表评论。 :)

答案 2 :(得分:2)

您可以通过wlan模块的MAC地址或IMEI识别设备(两者都可以通过Android系统服务检索)。接下来是您确定服务器的安装,如果服务器回复该用户/客户已经在另一台设备上安装了该安装,则锁定应用程序并告诉用户该怎么办。