1

我有一个 Android 电视棒,我想区分支持哪个 HDCP 版本?

我已经找到了一些东西,它似乎有效:

    try {
        val uuid = UUID.fromString("1f83e1e8-6ee9-4f0d-ba2f-5ec4e3ed1a66")
        val mediaDrm = MediaDrm(uuid)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
            mediaDrm.connectedHdcpLevel
        }
    } catch (use : UnsupportedSchemeException) {
        Log(use.localizedMessage)
    }

文件说

在 API 级别 28 中添加

如何读取旧 API < 28 的 HDCP 级别?

4

1 回答 1

0

根据您的问题,仅在 API V28 上或之前请参阅此处...

你可以摆脱这个,但在进入这个之前可能必须检查你的版本级别。


// CHECK if V28 or before... ONLY then enter the REST of the below code...
val algorithms = mediaDrm.getPropertyString("maxHdcpLevel")

// you also Then manually suppress the warning error/constant


// get your maxHdcpLevel manually
val stringProperties = arrayOf(
                MediaDrm.PROPERTY_VENDOR,
                MediaDrm.PROPERTY_VERSION,
                MediaDrm.PROPERTY_DESCRIPTION,
                MediaDrm.PROPERTY_ALGORITHMS,
                "maxHdcpLevel")

val devicePropertiesMap = ... MapOf<String, String>()

for (attributes in stringProperties) {
     devicePropertiesMap [attributes ] = mediaDrm.getPropertyString(attributes )
     Log.mydebug(attributes , mediaDrm.getPropertyString(attributes ))
     }

Log.mydebug("maxHdcpLevel:", "${devicePropertiesMap ["maxHdcpLevel"]}")

现在你可以很容易地访问这些东西了......使用下面的代码示例

 val myDeviceHdcpLevel    = mediaDrm.getPropertyString("hdcpLevel")
 val myDeviceMaxHdcpLevel = mediaDrm.getPropertyString("maxHdcpLevel")
于 2021-08-26T05:08:42.763 回答