diff options
author | Bill Gruber <billg@google.com> | 2011-03-17 16:04:18 -0700 |
---|---|---|
committer | Bill Gruber <billg@google.com> | 2011-03-23 13:21:48 -0700 |
commit | 0e092f806b0a4b81785a52da8ba22d2d47087de5 (patch) | |
tree | 91c2d7f1aed528a955211ec89317e3b9f99e215a /drm/java/android/drm/package.html | |
parent | 5dbd0978cd7f2d3ff1e28bbfdef2f757de28e1bc (diff) | |
download | frameworks_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-x | drm/java/android/drm/package.html | 85 |
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> |