Je travaille avec le mode hôte Android pour USB. Dans la documentation du host mode api, les exigences manifestes suggèrent d'utiliser:Hôte USB a la documentation confuse
android.hardware.usb.action.USB_DEVICE_ATTACHED
Ce me cause une certaine confusion que le UsbManager docs suggère d'utiliser:
android.hardware.usb.action.ACTION_USB_DEVICE_ATTACHED
Quelqu'un peut-il expliquer la différence entre les deux?
En outre, la version UsbManager (2e) n'informe pas mon application lorsque le périphérique est connecté, mais que la version hôte (1ère) le fait.
Je ne peux pas obtenir l'intention de travailler détaché en utilisant soit la version:
android.hardware.usb.action.USB_DEVICE_DETACHED
android.hardware.usb.action.ACTION_USB_DEVICE_DETACHED
s'il vous plaît conseiller.
Modifier
Voici mon manifeste:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cs.android.terminal"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="12" android:targetSdkVersion="15" />
<uses-feature android:name="android.hardware.usb.accessory" />
<uses-feature android:name="android.hardware.usb.host" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter" />
</activity>
<receiver
android:name="cs.android.terminal.TerminalReceiver"
android:exported="false"
>
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
</application>
</manifest>
D'accord, je pense que cela me aide un peu. Seriez-vous capable de savoir pourquoi le filtre de détachement ne reçoit pas l'événement de détachement? –
Avez-vous enregistré votre 'BroadcastReceiver'? Habituellement cela est fait dans 'onResume 'mais pour les communications USB, je l'ai fait dans' onCreate' et ensuite j'appellerais 'unregisterReceiver' dans' onDestroy', mais cela se fait normalement dans 'onPause'. – TronicZomB
Les deux récepteurs sont enregistrés dans le manifeste: un pour la connexion et un pour le détachement. le filtre d'attache fonctionne bien, mais ne le détache jamais. –