通过 WPD 访问 MTP 供应商扩展属性

Posted

技术标签:

【中文标题】通过 WPD 访问 MTP 供应商扩展属性【英文标题】:Accessing MTP vendor extended properties through WPD 【发布时间】:2016-06-25 08:42:22 【问题描述】:

我正在使用 Windows Portable Device API 来访问一些 MTP 设备。我想从设备中读取供应商扩展属性,它应该看起来像这样:

“microsoft.com/WPDNA”或“microsoft.com/MTPZ”

看起来这应该是一个非常简单的任务,但我想不通。

我已经能够枚举设备上的对象并传输文件等,这包含在WpdApiSample Application中。

我还发现了this article,我认为这是我想做的。但我不明白如何创建这些查询。

【问题讨论】:

【参考方案1】:

在不涉及代码的情况下,简短的回答是扫描给定 FormatID 的一系列 PID,以查看其中包含哪些类型的数据。这是一个调试练习,仅用于发现目的。我基本上只是写了一个循环:例如,如果我想在基本扩展属性下扫描前 16 个 PID,您可以使用 WPD_PROPERTIES_MTP_VENDOR_EXTENDED_DEVICE_PROPS 作为 FormatID,然后对于 PID,在每次迭代时更改它并扫描值 0xD101 通过0xD10F。您通常可以从输出中得知该 PID 位置中可能包含的内容。

一旦您知道所需数据的 PID,就可以将其写入代码作为枚举例程的一部分。

【讨论】:

以上是关于通过 WPD 访问 MTP 供应商扩展属性的主要内容,如果未能解决你的问题,请参考以下文章

Android Gradle 插件Gradle 扩展属性 ④ ( 扩展属性访问方式 | 直接访问扩展属性 | 通过 ext 对象访问 | 在 gradle.properties 中定义扩展属性 )

当从扩展符号访问对象时如何访问 Javascript 对象的嵌套按名称属性...?

访问表的扩展属性

Android Gradle 插件Gradle 扩展属性 ② ( 定义在根目录 build.gradle 中的扩展属性 | 使用 rootProject.扩展属性名访问 | 扩展属性示例 )

Android Gradle 插件Gradle 扩展属性 ② ( 定义在根目录 build.gradle 中的扩展属性 | 使用 rootProject.扩展属性名访问 | 扩展属性示例 )

如何扩展 BPMN 2.0