Note: For licensing in online apps and games, we recommend using the Play Integrity API.
Learn more.
アプリのライセンス
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Google Play には、そこで公開するアプリにライセンス ポリシーを適用できるようにするライセンス サービスが用意されています。Google Play ライセンス サービスを統合することで、アプリのランタイムに現在のユーザーのライセンス ステータスを Google Play に問い合わせ、応答に応じてそれ以降の使用を許可または拒否できます。
また、アプリごとにライセンス ポリシーを調整でき、そのアプリに適した方法でライセンスを適用できます。必要に応じて、Google Play から取得したライセンス ステータスに基づき、カスタム制約を適用することもできます。たとえば、アプリでライセンス ステータスをチェックし、そのユーザーに一定の有効期間だけライセンスなしで実行を許可するといったカスタム制約を適用できます。さらに、アプリでは他の制約に加えて、アプリの使用を特定のデバイスに制限することもできます。
このライセンス サービスは、アプリの使用を制御する手段として安全性の高いものです。アプリからのライセンス ステータス チェックに対して Google Play サーバーから返される応答には、そのアプリ固有の鍵ペアによる署名がなされます。コンパイルした .apk
ファイルにアプリの公開鍵を格納することも可能ですが、信頼できるサーバーでライセンス ステータス応答を確認する方がはるかに安全です。
Google Play を介して公開するアプリであれば、Google Play ライセンス サービスを使用できます。サービスの利用に際し、特別なアカウントの作成や登録は必要ありません。また、このサービスでは専用のフレームワーク API を使用しないため、API レベル 3 以上を使用するアプリであれば、ライセンス機能を追加できます。
注: Google Play ライセンス サービスの本来の目的は、有料アプリを対象に、現在のユーザーが実際に Google Play でアプリの代金を支払ったことを確認するためのものです。しかし、APK 拡張ファイルのダウンロードを開始する目的で、すべてのアプリ(無料アプリも含む)でライセンス サービスをご利用いただけます。その場合、アプリがライセンス サービスにリクエストを送る目的は、ユーザーがアプリの代金を支払ったことの確認ではなく、拡張ファイルの URL を取得することになります。アプリの拡張ファイルのダウンロードについては、APK 拡張ファイルのガイドをご覧ください。
Google Play のアプリ ライセンス サービスの詳細とアプリへの統合方法については、以下のドキュメントをご覧ください。
- ライセンスの概要
- ライセンス サービスの仕組みと、一般的なライセンス機能の実装について説明します。
- ライセンスの設定
- アプリにライセンス機能を追加するための、Google Play アカウント、開発環境、テスト環境のセットアップ方法について説明します。
- アプリのサーバー側でのライセンス確認の追加
- アプリにサーバー側でのライセンス確認を追加する手順を詳しく説明します。
- ライセンス リファレンス
- ライセンス ライブラリのクラスとサービスの応答コードについて詳しく説明します。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2024-06-29 UTC。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]
{"lastModified": "\u6700\u7d42\u66f4\u65b0\u65e5 2024-06-29 UTC\u3002"}
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2024-06-29 UTC。"]]