page.title=Application Licensing
@jd:body


<p>Google Play offers a licensing service that lets you enforce licensing policies for
applications that you publish on Google Play. With Google Play Licensing, your application can
query Google Play at run time to obtain the licensing status for the current user, then allow or
disallow further use as appropriate. </p>

<p>Using the service, you can apply a flexible licensing policy on an application-by-application
basis&mdash;each application can enforce licensing in the way most appropriate for it. If necessary,
an application can apply custom constraints based on the licensing status obtained from Google Play.
For example, an application can check the licensing status and then apply custom constraints
that allow the user to run it unlicensed for a specific validity period. An application can also
restrict use of the application to a specific device, in addition to any other constraints. </p>

<p>The licensing service is a secure means of controlling access to your applications. When an
application checks the licensing status, the Google Play server signs the licensing status
response using a key pair that is uniquely associated with the publisher account. Your application
stores the public key in its compiled <code>.apk</code> file and uses it to verify the licensing
status response.</p>

<p>Any application that you publish through Google Play can use the Google Play Licensing
service. No special account or registration is needed. Additionally, because the service uses no
dedicated framework APIs, you can add licensing to any application that uses a minimum API level of
3 or higher.</p>

<p class="note"><strong>Note:</strong> The Google Play Licensing service is primarily intended
for paid applications that wish to verify that the current user did in fact pay for the application
on Google Play. However, any application (including free apps) may use the licensing service
to initiate the download of an APK expansion file. In which case, the request that your application
sends to the licensing service is not to check whether the user paid for the app, but to request the
URL of the expansion files. For information about downloading expansion files for your application,
read the guide to <a href="{@docRoot}guide/google/play/expansion-files.html">APK Expansion Files</a>.</p>


<p>To learn more about Google Play's application licensing service and start integrating it into
your applications, read the following documents:</p>

<dl>
  <dt><strong><a href="{@docRoot}guide/google/play/licensing/overview.html">Licensing
Overview</a></strong></dt>
    <dd>Describes how the service works and what a typical licensing implementation looks
like.</dd>
  <dt><strong><a href="{@docRoot}guide/google/play/licensing/setting-up.html">Setting Up for
Licensing</a></strong></dt>
    <dd>Explains how to set up your Google Play account, development environment, and
testing environment in order to add licensing to your app.</dd>
  <dt><strong><a href="{@docRoot}guide/google/play/licensing/adding-licensing.html">Adding
Licensing to Your App</a></strong></dt>
    <dd>Provides a step-by-step guide to add licensing verification to your application.</dd>
  <dt><strong><a href="{@docRoot}guide/google/play/licensing/licensing-reference.html">Licensing
Reference</a></strong></dt>
    <dd>Provides detailed information about the licensing library's classes and the service response
codes.</dd>
</dl>





