Как проверить наличие DRM Widevine на устройстве Android

Я делаю приложение, в котором я должен проверить, присутствует ли Google Widevine DRM на устройстве Android или нет. Как это проверить программно?

Заранее спасибо

3 ответа

Платформа Android DRM предоставляет метод проверки, какие системы DRM доступны -

String[] engines = mDrmManager.getAvailableDrmEngines()

Возвращенные имена могут быть немного запутанными, но если вы поиграете с ними, вы должны увидеть, что вы ищете.

Стоит помнить, что существуют различные уровни Widevine в зависимости от того, как защищены ключи DRM и насколько безопасно воспроизведение на аппаратном уровне.

Существует также два основных типа Widevine - Widevine classic на старых устройствах и Widevine Modular на новых устройствах.

Вы можете увидеть некоторые подробности о том, как определить уровень для Widevine Classic здесь:

Мы можем использовать этот метод для получения определенного уровня безопасности Widevine для любого устройства Android https://developer.android.com/reference/android/media/MediaDrm#getPropertyString(java.lang.String)

фрагмент шорткода для иллюстрации документации.

      val widevineKeyDrm = MediaDrm(C.WIDEVINE_UUID)
val securityLevel = widevineKeyDrm.getPropertyString()

PS. постоянная C.WIDEVINE_UUIDберется отсюда https://github.com/donparapidos/ExoPlayer/blob/master/library/src/main/java/com/google/android/exoplayer2/C.java

Я нашел решение, исследуя библиотеку ExoPlayer

private boolean isWideVineDRMAvailable()
{
    return  MediaDrm.isCryptoSchemeSupported(C.WIDEVINE_UUID);
}

C - это константный класс, доступный в библиотеке ExoPlayer.

Другие вопросы по тегам