USB_DEVICE_ATTACHED仅启动Galaxy S3 ICS的活动

Gus*_*dor 8 usb android

最近我一直试图按照我见过的所有样本和示例使用广播接收器接收意图android.hardware.usb.action.USB_DEVICE_ATTACHED.

我在清单中宣布了一个接收者;

<receiver android:name=".UsbDeviceReceiver">
        <intent-filter>
            <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
            <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>
    <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" 
                android:resource="@xml/device_filter"/>
Run Code Online (Sandbox Code Playgroud)

我在活动代码中也做过类似的操作 - onStart和OnStop注册/取消注册接收器.

    IntentFilter filter = new IntentFilter();
    filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);

    registerReceiver(mUsbReceiver, filter);
Run Code Online (Sandbox Code Playgroud)

但是,我发现意图刚刚被发现.观察logcat我可以看到附加一个usb设备寻找要启动的活动,而分离广播的是detatch intent.根据上述样品,情况不应如此.

我是否遗漏了有关元数据的重大事项?我对android.hardware.usb.action.USB_DEVICE_DETACHED没有任何问题.也许这是安装在galaxy s3上的android版本的bug?也许这是ICS的"功能".

欢迎任何相关信息!

Dav*_*ean 4

这是一个已知的缺陷:

http://code.google.com/p/android/issues/detail?id=25701

和这里:

http://code.google.com/p/android/issues/detail?id=25703

但不要屏住呼吸等待它被修复。当您查看错误报告时,请为其加注星标,以便您收到报告更新的通知。其他人可能会提出评论,要求修复该问题。