15

Androidアプリを公開しました。

問題は、誰かが私のアプリを購入した場合、同じアカウントを使用して複数のデバイスにインストールできることです。

アカウントごとにインストールを少数(たとえば2つ)の一意のデバイスに制限できますか?

ユーザーが同じアカウントを持つ別のデバイスでそれを使用したい場合は、最初に別のデバイスからアンインストールする必要があります。

たとえば、MyBackupProは2つの固有のデバイスのみを許可します。

アプリでこれを実現するにはどうすればよいですか?

4

3 に答える 3

11

Google がこれを支援します

このページは、それを設定するのに役立ちます。

より具体的には、 DeviceLimiter を追加したいようです:

場合によっては、1 つのライセンスの使用を許可する実際のデバイスの数をポリシーで制限する必要がある場合があります。これにより、ユーザーがライセンスされたアプリケーションを多数のデバイスに移動し、それらのデバイスで同じアカウント ID の下でアプリケーションを使用することができなくなります。また、ライセンスに関連付けられたアカウント情報を他の個人に提供することで、ユーザーがアプリケーションを「共有」することを防ぎます。他の個人は、デバイスでそのアカウントにサインインし、アプリケーションのライセンスにアクセスできます。

LVL は、単一のメソッド allowDeviceAccess() を宣言する DeviceLimiter インターフェイスを提供することにより、デバイスごとのライセンスをサポートします。LicenseValidator は、ライセンス サーバーからの応答を処理するときに、allowDeviceAccess() を呼び出し、応答から抽出されたユーザー ID 文字列を渡します。

デバイス制限をサポートしたくない場合は、何もする必要はありません。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.
于 2013-03-05T10:14:46.200 に答える
3

アスコルビンとヤリアンの両方の答えは説明するのにうれしいです。

私の知識によると、それは2つの方法で管理できます。

1.グーグルによってそれ自身

2.独自の実装による

一つずつチェックしてみましょう、

1.グーグルそれ自身によって

Ascorbinの回答は、それを実装する方法とgoogleがそれを管理する方法をよく説明しています。だからあなたがそれを手に入れたことを願っています。そうでない場合は、私に知らせてください。

2.独自の実装による

独自のサーバーがある場合は、インストールされているアプリデバイスをチェックするコードを配置できます。すべてのデバイスには一意のIMEI番号があるため、同じIMEI番号を簡単に追跡して、アプリのインストールやアプリの動作をブロックまたは許可できます。

注:デバイスで同じアカウントが設定されている場合、Googleでは別のデバイスで同じアプリを使用できます。その場合、異なるIMEIまたはMACアドレスを持つ同じアカウントを検出することによってのみ可能になります。

あなたがポイントを得たことを願っています。

コメントしてください。:)

于 2013-03-06T04:03:39.570 に答える
2

たとえば、wlan モジュールの MAC アドレスまたは IMEI を介してデバイスを識別できます (どちらも Android システム サービスを介して取得できます)。次に、サーバーでインストールを識別します。サーバーが、このユーザー/顧客が別のデバイスに既にこれをインストールしていると応答した場合、アプリをロックして、ユーザーに何が起きているかを伝えます。

于 2013-02-25T10:15:53.730 に答える