【问题标题】:Access connected MTP device without receiving USB_DEVICE_ATTACHED Intent?在没有收到 USB_DEVICE_ATTACHED Intent 的情况下访问连接的 MTP 设备?
【发布时间】: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


    【解决方案1】:

    我发现 USB 主机模式 API 指南文档在这方面非常有用。

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

    最重要的一点是,如果您没有从活动中收到 UsbDevice,那么您将需要请求与它通信的权限。此过程在提供的链接中进行了描述。

    【讨论】:

      猜你喜欢
      • 2022-11-02
      • 1970-01-01
      • 2017-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-21
      • 1970-01-01
      • 2013-11-22
      相关资源
      最近更新 更多