Доступ к подключенному устройству MTP без получения USB_DEVICE_ATTACHED Намерение? - PullRequest
0 голосов
/ 06 октября 2011

Я работаю над некоторым приложением, которое использует протокол передачи мультимедиа для чтения фотографий с камеры, подключенной к моему USB-хосту Android Tablets (Android 3.1, Acer Iconia Tab A500).

Я нашел несколько руководств, описывающих, какдля работы с USB, и я получил копирование с USB-камеры на SD-карту, уже работающую.

У меня есть только одна проблема: все учебники ждут USB_DEVICE_ATTACHED-Intent и затем открывают соединение UsbDeviceConnection для связи с устройством.это отправляется в намерениях Bundle.

Так что я хотел бы иметь возможность вручную запустить действие, которое обращается к USB - БЕЗ получения этого намерения.Проблема сейчас в том, что я не могу открыть USBConnection, как это

UsbDeviceConnection usbDeviceConnection = usbManager.openDevice(usbDevice);

Он просто возвращает ноль.Если я повторно подключу устройство и выберу свою Активность в качестве приемника Intent, он будет работать нормально.Я думаю, что это должно быть из-за IntentReceiver, имеющего некоторые эксклюзивные разрешения на USB-устройстве.

Мой манифест выглядит так:

    <activity
        android:name=".ImageActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
        </intent-filter>
        <meta-data
            android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
            android:resource="@xml/device_filter" />
    </activity>

Итак, один пример: что если пользователь установил Galeryпо умолчанию для USB-устройств.Как я могу получить доступ к USB-устройству в этом случае?

1 Ответ

2 голосов
/ 28 июня 2012

Мне показалось, что документация по руководству по API режима USB-хоста очень полезна в этой области.

http://developer.android.com/guide/topics/connectivity/usb/host.html#discovering-d

Самое важное замечание: если вы НЕ получили UsbDevice от действия, вам нужно будет запросить разрешение на связь с ним. Этот процесс описан в приведенной ссылке.

...