Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在不接收USB\u设备\u连接意图的情况下访问已连接的MTP设备?_Android_Android Activity_Android Intent_Usb_Android 3.0 Honeycomb - Fatal编程技术网

Android 在不接收USB\u设备\u连接意图的情况下访问已连接的MTP设备?

Android 在不接收USB\u设备\u连接意图的情况下访问已连接的MTP设备?,android,android-activity,android-intent,usb,android-3.0-honeycomb,Android,Android Activity,Android Intent,Usb,Android 3.0 Honeycomb,我正在开发一个应用程序,它使用媒体传输协议从连接到安卓平板电脑USB主机(安卓3.1,Acer Iconia Tab A500)的摄像头读取照片 我找到了一些介绍如何使用USB的教程,我已经可以从USB摄像头复制到SD卡了 我只有一个问题:所有教程都会等待USB_DEVICE_ATTACHED-Intent,然后打开UsbDeviceConnection,以便与intents捆绑包中发送的设备通信 因此,我希望能够手动启动一个访问USB的活动,而无需接收此意图。 现在的问题是,我无法打开这样的U

我正在开发一个应用程序,它使用媒体传输协议从连接到安卓平板电脑USB主机(安卓3.1,Acer Iconia Tab A500)的摄像头读取照片

我找到了一些介绍如何使用USB的教程,我已经可以从USB摄像头复制到SD卡了

我只有一个问题:所有教程都会等待USB_DEVICE_ATTACHED-Intent,然后打开UsbDeviceConnection,以便与intents捆绑包中发送的设备通信

因此,我希望能够手动启动一个访问USB的活动,而无需接收此意图。 现在的问题是,我无法打开这样的USB连接

UsbDeviceConnection usbDeviceConnection = usbManager.openDevice(usbDevice);
它只返回null。 如果我重新插入设备并选择我的活动作为Intent receiver,它可以正常工作。 我认为这一定是因为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设备?

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

最重要的一点是,如果您尚未从某个活动收到USB设备,则需要请求与之通信的权限。此过程在提供的链接中进行了描述