通过 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.扩展属性名访问 | 扩展属性示例 )