android DRM软件包的文档说"DRM API的常见用途包括......确定在设备上安装了哪些DRM插件(代理)".
我可以在DRM包中找到的唯一方法是DrmManagerClient.getAvailableDrmEngines().此方法确实有效,因为它返回一个包含DRM代理名称的字符串数组.这是关于确定安装哪些插件的上述陈述是指的是什么?
但是,该列表(至少在某些情况下)与android.Media包中的新方法MediaDrm.isCryptoSchemeSupported()的结果完全相矛盾.
例子:
getAvailableDrmEngines():
isCryptoSchemeSupported():
getAvailableDrmEngines():
isCryptoSchemeSupported():
一位开发人员在Google Play商店中拥有一个非常受欢迎的DRM相关工具,他告诉我他会认为这种DrmManagerClient方法已经过时/不常用了.
在这种情况下,MediaDrm.isCryptoSchemeSupported()在可能的情况下使用它是有意义的,即API级别18或更高级别.但是MediaDrm没有提供获得支持的加密方案/代理/插件列表的方法; 你只需要尝试你感兴趣的那些.你可以尝试将DASHIF列表中已知的加密方案UUID 放入你的代码中,并尝试所有这些.但这份名单可能会在过去几年中发生变化.
这让我们回到原来的问题:
如何获得设备上安装的(准确)DRM插件列表?
为澄清主要问题,相关问题在于提出这个问题:
DrmManagerClient.getAvailableDrmEngines()其他内容吗?DrmManagerClient.getAvailableDrmEngines(),但后者在较新的设备上给出错误的结果,为什么它不被弃用?它是制造商实施Android的一个普遍存在的错误吗?
DrmManagerClient.getAvailableDrmEngines()不可靠,除了尝试你能找到的所有UUID之外,还有另一种获取列表的方法吗?| 归档时间: |
|
| 查看次数: |
626 次 |
| 最近记录: |