我正在制作一个应用程序,我必须在其中检查Android 设备中是否存在Google Widevine DRM 。如何以编程方式检查?
提前致谢
我正在制作一个应用程序,我必须在其中检查Android 设备中是否存在Google Widevine DRM 。如何以编程方式检查?
提前致谢
Android DRM 框架提供了一种方法来检查哪些 DRM 系统可用 -
String[] engines = mDrmManager.getAvailableDrmEngines()
返回的名称可能有点令人困惑,但如果您使用它,您应该会看到您要查找的内容。
值得一提的是,Widevine 有不同的级别,具体取决于 DRM 密钥的保护方式以及播放是否在硬件内都是安全的。
Widevine 也有两种通用类型——旧设备上的 Widevine classic 和新设备上的 Widevine Modular。
您可以在此处查看有关如何确定 Widevine Classic 级别的一些详细信息:
我们可以使用此方法为任何 android 设备获取特定的 Widevine 安全级别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 库中可用的常量类。