Как обнаружить устройство MTP / PTP в сотах? - PullRequest
1 голос
/ 01 сентября 2011

Я хочу обнаружить устройство MTP / PTP, когда оно подключается к устройству Android. Я знаю, что есть один метод, использующий Intent: android.hardware.usb.action.USB_DEVICE_ATTACHED, а затем определяющий метаданные, который использует ресурс типа <usb-device class="6" subclass="1" protocol="1">, но он не работает. Система не отправляет это намерение зарегистрированному приложению.

Итак, кто-нибудь знает, как это сделать?

Ответы [ 2 ]

0 голосов
/ 16 октября 2014

не могли бы вы указать, какое устройство вы используете для тестирования? Весьма вероятно, что ваше устройство не имеет определенных значений PTP / MTP в классе, подклассе и протоколе для дескриптора устройства USB и / или дескриптора интерфейса. Смотрите это: http://events.linuxfoundation.org/sites/events/files/slides/Media%20Transfer%20Protocol.pdf Некоторые устройства рекламируют себя как устройства массовой памяти или поставщика. В этом случае единственный способ - попытаться сопоставить идентификатор поставщика и идентификатор продукта для устройств, которые вы хотели бы поддерживать. Вот также список устройств MTP с их идентификатором производителя и идентификатором продукта: http://sourceforge.net/p/libmtp/code/ci/HEAD/tree/src/music-players.h.

Надеюсь, это поможет.

0 голосов
/ 01 сентября 2011

Вы настроили устройство в качестве хоста USB, добавив в AndroidManifest.xml :

<uses-feature android:name="android.hardware.usb.host" /> 
...