我想在插入android设备时检测MTP/PTP设备。我知道有一种使用Intent的方法:android.hardware.usb.action.USB_DEVICE_ATTACHED,然后定义使用<usb-device class="6" subclass="1" protocol="1">等资源的元数据,但它不起作用。系统不会将此意图发送到已注册的应用程序。
那么,有没有人知道怎么做呢?
发布于 2011-09-01 18:48:47
您是否通过添加到AndroidManifest.xml中将计算机设置为充当USB主机?
<uses-feature android:name="android.hardware.usb.host" /> 发布于 2014-10-16 18:18:58
您能详细说明您用于测试的设备是什么吗?您的设备很可能在USB设备描述符和/或接口描述符的类、子类和协议中没有PTP/MTP特定值。看看这个:http://events.linuxfoundation.org/sites/events/files/slides/Media%20Transfer%20Protocol.pdf一些设备宣传自己是大容量存储设备或特定于供应商的设备。如果是这种情况,唯一的方法是尝试匹配供应商id和您想要支持的设备的产品id。这也是一个MTP设备的列表,以及它们的供应商id和产品id:http://sourceforge.net/p/libmtp/code/ci/HEAD/tree/src/music-players.h。
希望这能有所帮助。
https://stackoverflow.com/questions/7268969
复制相似问题