APIクロスプラットフォームエンジン用のプラグインと拡張機能Amazonアプリストアへの申請アプリの申請アプリ内課金(IAP)に関するフォーラムAndroid用のDRMAndroid用のDRMDRM(デジタル著作権管理、より一般的には、ライセンス検証)は、アプリの不正なコピーや配布に関する開発者の懸念に対処することを目的としています。アプリにDRMを実装する場合、アプリを購入したユーザーのみがDRMを認証済みデバイスにインストールできるようにします。SDKに含まれています。SDKの統合を参照してください。APIを使用すると、ユーザーにコンテンツのライセンスが付与されているかどうかを確認できます。Amazonアプリストアクライアントは、アプリのローカルキャッシュで適切なコンテンツライセンスを探します。ライセンスがローカルキャッシュで見つかると、それがレスポンスで返されます(したがって、ユーザーがオフラインでもアプリは実行されます)。ライセンスがキャッシュに存在しない場合、AmazonアプリストアクライアントはAmazonアプリストアを呼び出してコンテンツライセンスを取得します。APIを使用してライセンスチェックを開始し、Amazonが返すライセンスのステータスに基づいてユーザーを承認または拒否するロジックを適用する必要があります。選択できるオプションが用意されていました(以下のスクリーンショットを参照)。選択すると、アプリにDRMが追加されていました。SDKを使用すると、このオプションは開発者コンソールに表示されません。SDKの一部として提供)を使用して、ライセンスチェック機能をアプリに組み込みます。いうオプションが表示されます。SDKを使用しているAPK、またはSDKを使用していないAPKをアップロードした場合は、次の警告が表示されます。APIコードを示すDRMサンプルアプリとチュートリアルが用意されています。アプリへのDRMの実装アプリにDRMを実装するには、次の手順を実行します。SDKをAndroidプロジェクトに追加します。アプリのマニフェストファイルを更新します。マニフェストにResponseReceiverのエントリを追加します。次のコード例は、DRM用のAndroidManifest.xmlファイルにResponseReceiverを追加する方法を示しています。12以降を対象としている場合は、次の例に示すように、MainActivityとResponseReceiverでandroid:exportedを明示的にtrueに設定する必要があります。APIレベル30以上を対象としている場合は、アプリから照会する必要のあるパッケージのリストをAndroidManifest.xmlに定義する必要があります。TesterとAmazonアプリストアを照会できるようにするには、マニフェストファイルに次のコードを追加します。</manifest>verifyLicense()を呼び出して、ライセンス検証を開始します。このメソッドは、LicensingServiceクラスで公開されます。入力として、次の2つのパラメータを取ります。ApplicationContextLicensingListenerの実装アプリが起動したら、ライセンス検証を開始します。ライセンス検証は、次のいずれかの方法で開始できます。MainActivityのonCreate()メソッドApplicationクラスのカスタム実装のonCreate()以下に例を示します。LicensingServiceクラスには、アプリがSANDBOXとPRODUCTIONのどちらのモードで実行されているかを特定するためのgetAppstoreSDKMode()メソッドが用意されています。Testerでアプリをテストする際に役立ちます。このgetAppstoreSDKMode()メソッドでは、verifyLicense()の呼び出しが事前に行われていない場合、UNKNOWNが返されます。LicensingListenerを実装します。licenseResponse)という単一のメソッドを定義します。SDKによって呼び出されます。LicenseResponseに、verifyLicense()呼び出しのステータスが返されます。このレスポンスには、次のいずれかのステータスが格納されます。LICENSEDNOT_LICENSEDERROR_VERIFICATIONERROR_INVALID_LICENSING_KEYSEXPIREDUNKNOWN_ERRORそれぞれのステータスと理由については、ライセンスステータスを参照してください。LicensingListenerインターフェイスの基本的な実装は次のようになります(このコードは、返されたライセンスのステータスを記録するだけです)。DRMサンプルアプリに実装例が用意されています。ライセンスステータスverifyLicense()を呼び出すと、次の表に定義されているいずれかのライセンスステータスがライセンスサービスから返されます。ユーザーは有効なライセンスを保有している。ユーザーは有効なライセンスを保有していない。このユーザーには、アプリを使用する権利がありません。ライセンスの検証中にエラーが発生した。検証エラーの理由として、次の原因が考えられます。アプリのメタデータ(チェックサム、署名、パッケージ名など)をAmazonが検証できなかった。SDK」に送信されたライセンス(それ自体が「なりすまし」である可能性もあります)が転送中に改ざんされている。ユーザーはライセンスキーを保有しているが、有効ではない。ライセンスキーが無効である理由として、次の原因が考えられます。アプリにパブリックキーを追加しなかったか、または追加先のフォルダが正しくない。追加されたパブリックキーが、Amazonが保有する対応するプライベートキーと一致しない。EXPIREDユーザーのライセンスの有効期限が切れ、現在は無効になっている。ライセンスの有効期間は60日間です。30日後から、Amazonアプリストアは24時間ごとにライセンスの更新を試みます。ユーザーのオフライン期間が60日を超えた場合は、有効期限が切れる前にAmazonアプリストアがライセンスを更新することはできません。ライセンスの有効期限が切れた場合、それ以降ユーザーはアプリを起動できなくなります。ライセンスの有効期限が切れる理由としては、ほかにも次の原因が考えられます。ユーザーが注文の取り消しをリクエストした。Amazonアプリストアが楽観的に(支払いトランザクションが確定する前に)ユーザーの注文を履行したものの、その後請求に失敗したためにライセンスが取り消された。このステータスは、Amazon側の内部エラーを示します。SDKライブラリのほとんどは、(JARにパッケージ化される前に)既に難読化されています。一部の開発者向けクラスは難読化されていません。次のDRMライブラリクラスは難読化されていません。LicensingListenerLicensingServiceLicenseResponseRequestIdこれらのクラスが難読化されないようにするには、ProGuardファイルに適切な参照を追加してクラスを除外します(ProGuardを使用してコードを難読化している場合)。無断複写·転載を禁じます。