summaryrefslogtreecommitdiffstats
path: root/drm/java/android/drm/package.html
diff options
context:
space:
mode:
authorBill Gruber <billg@google.com>2011-03-17 16:04:18 -0700
committerBill Gruber <billg@google.com>2011-03-23 13:21:48 -0700
commit0e092f806b0a4b81785a52da8ba22d2d47087de5 (patch)
tree91c2d7f1aed528a955211ec89317e3b9f99e215a /drm/java/android/drm/package.html
parent5dbd0978cd7f2d3ff1e28bbfdef2f757de28e1bc (diff)
downloadframeworks_base-0e092f806b0a4b81785a52da8ba22d2d47087de5.zip
frameworks_base-0e092f806b0a4b81785a52da8ba22d2d47087de5.tar.gz
frameworks_base-0e092f806b0a4b81785a52da8ba22d2d47087de5.tar.bz2
DRM API doc scrub
This change contains information contributed by Sony Corporation. Bug: 4119363 Change-Id: I6f565c15d512d675993dc65f7fee19bd3d0bc0fa
Diffstat (limited to 'drm/java/android/drm/package.html')
-rwxr-xr-xdrm/java/android/drm/package.html85
1 files changed, 85 insertions, 0 deletions
diff --git a/drm/java/android/drm/package.html b/drm/java/android/drm/package.html
new file mode 100755
index 0000000..161d6e0
--- /dev/null
+++ b/drm/java/android/drm/package.html
@@ -0,0 +1,85 @@
+<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>