Я работаю над некоторым приложением, которое использует протокол передачи мультимедиа для чтения фотографий с камеры, подключенной к моему 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-устройству в этом случае?