diff --git a/media/jni/android_media_MediaDrm.cpp b/media/jni/android_media_MediaDrm.cpp index 4f7b7115fe260..2f4dd8fad8bbf 100644 --- a/media/jni/android_media_MediaDrm.cpp +++ b/media/jni/android_media_MediaDrm.cpp @@ -1003,19 +1003,9 @@ DrmPlugin::SecurityLevel jintToSecurityLevel(jint jlevel) { } static jbyteArray android_media_MediaDrm_getSupportedCryptoSchemesNative(JNIEnv *env) { + sp drm = android::DrmUtils::MakeDrm(); std::vector bv; - for (auto &factory : DrmUtils::MakeDrmFactories()) { - sp factoryV1_3 = drm::V1_3::IDrmFactory::castFrom(factory); - if (factoryV1_3 == nullptr) { - continue; - } - factoryV1_3->getSupportedCryptoSchemes( - [&](const hardware::hidl_vec>& schemes) { - for (const auto &scheme : schemes) { - bv.insert(bv.end(), scheme.data(), scheme.data() + scheme.size()); - } - }); - } + drm->getSupportedSchemes(bv); jbyteArray jUuidBytes = env->NewByteArray(bv.size()); env->SetByteArrayRegion(jUuidBytes, 0, bv.size(), reinterpret_cast(bv.data()));