Many media files and source code files were marked as executable in Git. Remove those. Also a shell script and python script were not marked as executable. Change-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5
86 lines
4.3 KiB
HTML
86 lines
4.3 KiB
HTML
<HTML>
|
||
<BODY>
|
||
<p>Provides classes for managing DRM content and determining the capabilities of DRM plugins
|
||
(agents). Common uses of the DRM API include:</p>
|
||
<ul>
|
||
<li>Determining which DRM plug-ins (agents) are installed on a device.</li>
|
||
<li>Retrieving information about specific plug-ins, such as the MIME types and file suffixes
|
||
they support.</li>
|
||
<li>Registering a user or a device with an online DRM service.</li>
|
||
<li>Retrieving license constraints for rights-protected content.</li>
|
||
<li>Checking whether a user has the proper rights to play or use rights-protected
|
||
content.</li>
|
||
<li>Associating rights-protected content with its license so you can use the
|
||
{@link android.media.MediaPlayer} API to play the content.</li>
|
||
</ul>
|
||
|
||
<h2>DRM Overview</h2>
|
||
|
||
<p>The Android platform provides an extensible DRM framework that lets applications manage
|
||
rights-protected content according to the license constraints that are associated with the
|
||
content. The DRM framework supports many DRM schemes; which DRM schemes a device supports
|
||
is up to the device manufacturer.</p>
|
||
|
||
<p>The Android DRM framework is implemented in two architectural layers (see figure below):</p>
|
||
<ul>
|
||
<li>A DRM framework API, which is exposed to applications through the Android
|
||
application framework and runs through the Dalvik VM for standard applications.</li>
|
||
<li>A native code DRM manager, which implements the DRM framework and exposes an
|
||
interface for DRM plug-ins (agents) to handle rights management and decryption for various
|
||
DRM schemes.</li>
|
||
</ul>
|
||
|
||
<img src="../../../images/drm_arch.png" alt="DRM architecture diagram" border="0"/>
|
||
|
||
<p>For application developers, the DRM framework offers an abstract, unified API that
|
||
simplifies the management of rights-protected content. The API hides the complexity of DRM
|
||
operations and allows a consistent operation mode for both rights-protected and unprotected content
|
||
across a variety of DRM schemes. For device manufacturers, content owners, and Internet digital
|
||
media providers the DRM framework’s plugin architecture provides a means of adding support for a
|
||
specific DRM scheme to the Android system.</p>
|
||
|
||
<h2>Using the DRM API</h2>
|
||
|
||
<p>In a typical DRM session, an Android application uses the DRM framework API to
|
||
instantiate a {@link android.drm.DrmManagerClient}. The application calls various methods
|
||
on the DRM client to query rights and perform other DRM-related tasks. Each
|
||
{@link android.drm.DrmManagerClient} instance has its own unique ID, so the DRM manager is able to
|
||
differentiate callers.</p>
|
||
|
||
<p>Although each DRM plug-in may require a different sequence
|
||
of API calls, the general call sequence for an application is as follows:</p>
|
||
|
||
<ul>
|
||
<li>Register the device with an online DRM service.
|
||
<p>You can do this by first using the {@link android.drm.DrmManagerClient#acquireDrmInfo
|
||
acquireDrmInfo()} method to acquire the registration information, and then using the {@link
|
||
android.drm.DrmManagerClient#processDrmInfo processDrmInfo()} method to process the
|
||
registration information.</p>
|
||
</li>
|
||
<li>Acquire the license that's associated with the rights-protected content.
|
||
<p>You can do this by first using the {@link android.drm.DrmManagerClient#acquireDrmInfo
|
||
acquireDrmInfo()} method to acquire the license information, and then using the {@link
|
||
android.drm.DrmManagerClient#processDrmInfo processDrmInfo()} method to process the
|
||
license information. You can also use the {@link
|
||
android.drm.DrmManagerClient#acquireRights acquireRights()} method.</p>
|
||
</li>
|
||
<li>Extract constraint information from the license.
|
||
<p>You can use the {@link android.drm.DrmManagerClient#getConstraints getConstraints()}
|
||
method to do this.</p>
|
||
</li>
|
||
<li>Associate the rights-protected content with its license.
|
||
<p>You can use the {@link android.drm.DrmManagerClient#saveRights saveRights()} method
|
||
to do this.</p>
|
||
</li>
|
||
</ul>
|
||
|
||
<p>After you make an association between the rights-protected content and its license,
|
||
the DRM manager automatically handles rights management for that content. Specifically, the
|
||
DRM manager will handle all further licensing checks when you attempt to play the content using
|
||
the {@link android.media.MediaPlayer} API.</p>
|
||
|
||
<p>To learn how to use the DRM API with a specific DRM plug-in, see the documentation provided
|
||
by the plug-in developer.</p>
|
||
</BODY>
|
||
</HTML>
|