我正在使用媒體傳輸協議從連接到我的Android平板電腦USB主機(Android 3.1,Acer Iconia Tab A500)的相機讀取照片的應用程序。未接收USB_DEVICE_ATTACHED訪問連接的MTP設備意圖?
我發現了一些教程,介紹瞭如何使用USB,並且從USB攝像頭複製到SD卡已經工作。
我只有一個問題:所有的教程都等待USB_DEVICE_ATTACHED-Intent,然後打開一個UsbDeviceConnection與intents Bundle中發送的設備進行通信。
因此,我希望能夠手動啓動訪問USB的活動 - 無需接收此意圖。 現在的問題是,我無法打開USBConnection這樣
UsbDeviceConnection usbDeviceConnection = usbManager.openDevice(usbDevice);
它只是返回null。 如果我重新插入設備並選擇我的活動作爲意圖接收器,它工作正常。 我認爲這必須是因爲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設備?