【发布时间】:2011-10-06 16:35:13
【问题描述】:
我正在开发一些应用程序,它使用媒体传输协议从连接到我的 Android 平板电脑 USB 主机(Android 3.1,Acer Iconia Tab A500)的相机中读取照片。
我找到了一些描述如何使用 USB 的教程,并且我已经从 USB 相机复制到 SD 卡。
我只有一个问题:所有教程都等待 USB_DEVICE_ATTACHED-Intent 然后打开一个 UsbDeviceConnection 用于与意图包中发送的设备进行通信。
所以我希望能够手动启动一个访问 USB 的活动——而不接收这个意图。 现在的问题是,我无法像这样打开 USBConnection
UsbDeviceConnection usbDeviceConnection = usbManager.openDevice(usbDevice);
它只是返回空值。 如果我重新插入设备并选择我的 Activity 作为 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 设备?
【问题讨论】:
标签: android android-activity android-intent usb android-3.0-honeycomb