Bonjour à tous.
Je me retrouve coincé dans mon application, je veut mettre en place un "receiver" dans mon code pour récupérer un évènement de type "android.nfc.action.TAG_DISCOVERED" (Je travail sur le NFC)
J'ai donc dans un premier temps déclaré ce receiver dans mon manifest en lui mettant directement le intent-filter qui va bien, mais ça ne fonctionne pas, ma class receiver ne se lance pas quand je passe un badge. Je pensais au début que c'étais tous simplement le faite que je ne récupérais pas le bon type d’évènement, donc j'ai mis ce intent-filter au sein de la description d'une activity (toujours dans le manifest), cette dernière se lance correctement quand je passe un badge, donc le problème ne vient pas de la à mon avis.
Mon manifest:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <uses-permission android:name="android.permission.NFC" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainActivity" android:theme="@android:style/Theme.NoTitleBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".NFCReceiver" android:enabled="true"> <intent-filter> <action android:name="android.nfc.action.TAG_DISCOVERED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> </application> </manifest>
Ma classe receiver:
J'aimerais par la suite mettre en place ce receiver de façon dynamique un peu de cette façon:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public class NFCReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // Traitement du badge } }
Mais bon si je n'arrive déjà pas à faire fonctionner la première solution ça ne vaut pas la peine de chercher plus loin^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 NFCReceiver intentReceiver = new NFCReceiver(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("android.nfc.action.TAG_DISCOVERED"); intentFilter.addCategory("android.intent.category.DEFAULT"); registerReceiver(intentReceiver, intentFilter); setContentView(R.layout.scan_layout);
Merci pour vos propositions.
Cordialement
Partager