</manifest>
Lors du premier accès à un module Yoctopuce, Android va ouvrir une fenêtre pour informer
l'utilisateur que l'application va accéder module connecté. L'utilisateur peut refuser ou autoriser
l a c c è s au périphérique. Si l'utilisateur accepte, l'application pourra accéder au périphérique
connecté jusqu'à la prochaine déconnexion du périphérique. Pour que la librairie Yoctopuce puisse
gérer correctement ces autorisations, il faut lui fournir un pointeur sur le contexte de l'application en
appelant la méthode EnableUSBHost de la classe YAPI avant le premier accès USB. Cette fonction
prend en argument un objet de la classe
Comme la classe Activity est une sous-classe de
YAPI.EnableUSBHost(this);
passé en paramètre n'est pas du bon type, une exception
...
@Override
public void
onCreate(Bundle
super.onCreate(savedInstanceState);
try {
// Pass the application Context to the Yoctopuce Library
YAPI.EnableUSBHost(this);
} catch
(YAPI_Exception
Log.e("Yocto",e.getLocalizedMessage());
}
}
...
Lancement automatique
Il est possible d'enregistrer son application comme application par défaut pour un module USB, dans
ce cas des qu'un module sera connecté au système, l'application sera lancée automatiquement. Il
faut ajouter <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/> dans
la section <intent-filter> de l'activité principale. La section <activity> doit contenir un pointeur sur un
fichier xml qui contient la liste des modules USB qui peuvent lancer l'application.
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
...
<uses-feature
...
<application ... >
<activity
android:name=".MainActivity"
<intent-filter>
<action
<action
<category
</intent-filter>
<meta-data
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter"
</activity>
</application>
</manifest>
Le fichier XML qui contient la liste des modules qui peuvent lancer l'application doit être sauvé dans
le répertoire res/xml. Ce fichier contient une liste de vendorId et deviceID USB en décimal.
L'exemple suivant lance l'application dès qu'un Yocto-Relay ou un Yocto-PowerRelay est connecté.
Vous pouvez trouver le vendorId et deviceId des modules Yoctopuce dans la section caractéristiques
de la documentation.
<?xml
version="1.0"
<resources>
<usb-device
vendor-id="9440" product-id="12"
<usb-device
vendor-id="9440" product-id="13"
</resources>
www.yoctopuce.com
android.content.Context
dans la méthode
savedInstanceState) {
e) {
android:name="android.hardware.usb.host"
android:name="android.intent.action.MAIN"
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:name="android.intent.category.LAUNCHER"
encoding="utf-8"?>
16. Utilisation du Yocto-Demo avec Android
, le plus simple est de d'appeler
Context
onCreate
YAPI_Exception
/>
>
/>
/>
/>
(ou d'une sous-classe).
de votre application. Si l'objet
sera générée.
/>
/>
/>
91