diff --git a/api/current.txt b/api/current.txt index 7228ef42dd3af..f1529aa6e15f1 100644 --- a/api/current.txt +++ b/api/current.txt @@ -24942,6 +24942,7 @@ package android.media { ctor public MediaDrm.SessionException(int, @Nullable String); method public int getErrorCode(); field public static final int ERROR_RESOURCE_CONTENTION = 1; // 0x1 + field public static final int ERROR_UNKNOWN = 0; // 0x0 } public class MediaDrmException extends java.lang.Exception { diff --git a/media/java/android/media/MediaDrm.java b/media/java/android/media/MediaDrm.java index aeb77cfddbbde..005f2d47367b8 100644 --- a/media/java/android/media/MediaDrm.java +++ b/media/java/android/media/MediaDrm.java @@ -303,6 +303,11 @@ public final class MediaDrm implements AutoCloseable { mErrorCode = errorCode; } + /** + * The SessionException has an unknown error code. + */ + public static final int ERROR_UNKNOWN = 0; + /** * This indicates that apps using MediaDrm sessions are * temporarily exceeding the capacity of available crypto diff --git a/media/jni/android_media_MediaDrm.cpp b/media/jni/android_media_MediaDrm.cpp index d7ab854d63ba8..f412161f418a2 100644 --- a/media/jni/android_media_MediaDrm.cpp +++ b/media/jni/android_media_MediaDrm.cpp @@ -149,6 +149,7 @@ struct SessionExceptionFields { }; struct SessionExceptionErrorCodes { + jint kErrorUnknown; jint kResourceContention; } gSessionExceptionErrorCodes; @@ -888,6 +889,8 @@ static void android_media_MediaDrm_native_init(JNIEnv *env) { gFields.sessionException.classId = static_cast(env->NewGlobalRef(clazz)); GET_FIELD_ID(gFields.sessionException.errorCode, clazz, "mErrorCode", "I"); + GET_STATIC_FIELD_ID(field, clazz, "ERROR_UNKNOWN", "I"); + gSessionExceptionErrorCodes.kErrorUnknown = env->GetStaticIntField(clazz, field); GET_STATIC_FIELD_ID(field, clazz, "ERROR_RESOURCE_CONTENTION", "I"); gSessionExceptionErrorCodes.kResourceContention = env->GetStaticIntField(clazz, field); }