Détecter lorsqu'un périphérique USB est détaché sur Android

J'ai une application Android qui doit détecter lorsqu'un périphérique USB est connecté ou déconnecté. Il fonctionne très bien lorsque le périphérique est d'abord attaché, mais je ne reçois aucune notification (c'est à dire, je ne reçois pas une Intent dont l'action est ACTION_USB_DEVICE_DETACHED) quand il est ensuite détaché.

Voici la partie pertinente de mon AndroidManifest.xml:

<activity android:name=".LauncherActivity">
    <intent-filter>
        <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
        <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
    </intent-filter>
    <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter" />
    <meta-data android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" android:resource="@xml/device_filter" />
</activity>

Il peut également être intéressant de noter que LauncherActivity n'existe que pour démarrer un Service lorsque l'appareil est connecté, et pour arrêter le service lorsqu'il est détaché. Dans les deux cas, LauncherActivity toujours finishes lui-même immédiatement. Tout cela se produit dans LauncherActivity.onCreate.

Des idées?

InformationsquelleAutor Michael | 2013-04-02