Как проверить наличие 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.