Bonjour,
Après une semaine de test, je n'arrive toujours pas à réaliser un programme simple de lecture de tag NFC en python sur Android / Samsung S4.
Je m'inspire du code suivant : http://python-for-android.readthedoc...droid.activity
J'utilise le lanceur de programme KIVY, j'utilise PYJNIUS pour l'accès aux objets android, j'arrive à accéder au lecteur NFC (je vérifie qu'il est 'enabled' ou non), mais je n'arrive pas à recevoir de notification 'onNewIntent' lorsque je 'tap' un tag (je ne cherche pas à lancer une application sur détection, mais à détecter moi-même un tag).

Voila un résumé du code: Ce n'est pas un problème de d’exécution que je cherche, mais un problème de conception / compréhension du pilotage du NFC) :
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
import time
 
g_app = None
global PythonActivity
PythonActivity = None
global Intent
Intent = None
global NfcAdapter
NfcAdapter = None
global NdefMessage
NdefMessage = None
 
import android.activity
from jnius import autoclass
from jnius import cast
 
PythonActivity = autoclass('org.renpy.android.PythonActivity')
Intent = autoclass('android.content.Intent')
NfcAdapter = autoclass("android.nfc.NfcAdapter")
NdefMessage = autoclass("android.nfc.NdefMessage")
 
# ==========
def log(msg) :
	# logging.etc...
#EndDef
 
# ==========
def on_new_intent_received(intent):
	log("on_new_intent_received > enters..." + intent.getAction())
#EndDef
 
currentActivity = cast('android.app.Activity', PythonActivity.mActivity)
 
nfcAdapter = NfcAdapter.getDefaultAdapter()
 
if nfcAdapter.isEnabled() == True :
	log("nfcAdapter.isEnabled() == True")
 
	android.activity.bind( on_new_intent = on_new_intent_received)
 
	intent = Intent()
	intent.setAction( NfcAdapter.ACTION_TAG_DISCOVERED)
	intent.setFlags( Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP)
	currentActivity.startActivity( intent)
 
	while True :
		time.sleep(1.0)
	#EndWhile
else:
	log("nfcAdapter.isEnabled() == False")
#EndIf
Avez vous des suggestions ?

Cordialement.