Allow MediaCasTest to run on Q successfully

bug: 157575295
Test: Manual
Change-Id: I5c314d0e74869dc84c616c037e5cc27c77ba8581
diff --git a/tests/tests/media/src/android/media/cts/MediaCasTest.java b/tests/tests/media/src/android/media/cts/MediaCasTest.java
index c7d8fa3..0501452 100644
--- a/tests/tests/media/src/android/media/cts/MediaCasTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaCasTest.java
@@ -24,6 +24,8 @@
 import android.media.MediaCasStateException;
 import android.media.MediaCodec;
 import android.media.MediaDescrambler;
+import android.media.cts.R;
+import android.os.Build;
 import android.os.Handler;
 import android.os.HandlerThread;
 import android.platform.test.annotations.Presubmit;
@@ -32,6 +34,8 @@
 import android.util.Log;
 
 import androidx.test.filters.SmallTest;
+import com.android.compatibility.common.util.ApiLevelUtil;
+import com.android.compatibility.common.util.MediaUtils;
 import com.android.compatibility.common.util.PropertyUtil;
 
 import java.lang.ArrayIndexOutOfBoundsException;
@@ -52,6 +56,7 @@
     private static final int sInvalidSystemId = 0;
     private static final int sClearKeySystemId = 0xF6D8;
     private static final int API_LEVEL_BEFORE_CAS_SESSION = 28;
+    private boolean mIsAtLeastR = ApiLevelUtil.isAtLeast(Build.VERSION_CODES.R);
 
     // ClearKey CAS/Descrambler test vectors
     private static final String sProvisionStr =
@@ -252,8 +257,12 @@
         MediaDescrambler descrambler = null;
 
         try {
-            mediaCas = new MediaCas(getContext(), sClearKeySystemId, "TIS_Session_1",
-                android.media.tv.TvInputService.PRIORITY_HINT_USE_CASE_TYPE_LIVE);
+            if (mIsAtLeastR) {
+                mediaCas = new MediaCas(getContext(), sClearKeySystemId, "TIS_Session_1",
+                    android.media.tv.TvInputService.PRIORITY_HINT_USE_CASE_TYPE_LIVE);
+            } else {
+                mediaCas = new MediaCas(sClearKeySystemId);
+            }
             descrambler = new MediaDescrambler(sClearKeySystemId);
 
             mediaCas.provision(sProvisionStr);
@@ -266,7 +275,9 @@
                 fail("Can't open session for program");
             }
 
-            Log.d(TAG, "Session Id = " + Arrays.toString(session.getSessionId()));
+            if (mIsAtLeastR) {
+                Log.d(TAG, "Session Id = " + Arrays.toString(session.getSessionId()));
+            }
 
             session.setPrivateData(pvtData);
 
@@ -295,7 +306,9 @@
             Handler handler = new Handler(thread.getLooper());
             testEventEcho(mediaCas, 1, 2, null /* data */, handler);
             testSessionEventEcho(mediaCas, session, 1, 2, null /* data */, handler);
-            testOpenSessionEcho(mediaCas, 0, 2, handler);
+            if (mIsAtLeastR) {
+                testOpenSessionEcho(mediaCas, 0, 2, handler);
+            }
             thread.interrupt();
 
             String eventDataString = "event data string";
@@ -504,6 +517,7 @@
      */
     public void testResourceLostEvent() throws Exception {
         MediaCas mediaCas = null;
+        if (!MediaUtils.check(mIsAtLeastR, "test needs Android 11")) return;
 
         try {
             mediaCas = new MediaCas(getContext(), sClearKeySystemId, "TIS_Session_1",