【问题标题】:How to check widevine DRM present on the Android Device如何检查 Android 设备上存在的 Widevine DRM
【发布时间】:2017-05-07 23:52:55
【问题描述】:

我正在制作一个应用程序,我必须在其中检查 Android 设备中是否存在 Google Widevine DRM。 如何以编程方式检查?

提前致谢

【问题讨论】:

    标签: android android-tv drm widevine android-drm


    【解决方案1】:

    Android DRM 框架提供了一种方法来检查哪些 DRM 系统可用 -

    String[] engines = mDrmManager.getAvailableDrmEngines()
    

    返回的名称可能有点令人困惑,但如果您使用它,您应该会看到您要查找的内容。

    值得注意的是,Widevine 有不同的级别,具体取决于 DRM 密钥的保护方式以及播放在硬件中是否完全安全。

    Widevine 也有两种通用类型 - 旧设备上的 Widevine classic 和新设备上的 Widevine Modular。

    您可以在此处查看有关如何确定 Widevine Classic 级别的一些详细信息:

    【讨论】:

      【解决方案2】:

      我通过探索 ExoPlayer 库找到了解决方案

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

      C 是 ExoPlayer 库中可用的常量类。

      【讨论】:

      • 是的,它不会告诉安全级别 L1 或 L3。以上代码仅用于检查 Widevine DRM 是否存在。
      【解决方案3】:

      我们可以使用这种方法为任何安卓设备https://developer.android.com/reference/android/media/MediaDrm#getPropertyString(java.lang.String)获取特定的widevine安全级别

      简码 sn-p 来说明文档。

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

      附言。常量C.WIDEVINE_UUID 是从这里提取的https://github.com/donparapidos/ExoPlayer/blob/master/library/src/main/java/com/google/android/exoplayer2/C.java

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-19
        • 2014-10-21
        • 2018-05-17
        • 2019-09-24
        • 2020-01-13
        • 2018-07-11
        • 2017-06-01
        • 2023-03-06
        相关资源
        最近更新 更多