2011-10-28 3 views
0

J'ai une application Android pour lire un format nfc tag spécifique.Capturez NFC Tag une seule fois avec le système Dispatch

Mon activité est uniquement ouverte lorsque l'étiquette spécifiée est lue. Mais le téléphone reste à proximité de l'étiquette, l'activité est toujours recréée et je veux seulement ouvrir l'activité à la première fois.

Que puis-je faire pour implémenter cette solution?

grâce

+0

Je ne sais pas très bien ce que vous demandez. Voulez-vous que l'application s'ouvre la première fois qu'elle s'approche d'un tag, puis reste ouverte? Voulez-vous le fermer et ne pas le démarrer tout le temps? Voulez-vous que différentes applications s'ouvrent? –

Répondre

1

Si vous activez l'envoi de premier plan une fois que votre activité démarre, votre activité recevra directement les intentions lors de l'exécution au premier plan sans être recréée.

Voir Doco pour NfcAdaptor, méthode enableForegroundDispatch():

enableForegroundDispatch

0

À un niveau élevé, vous pouvez mettre en œuvre "anti-rebond":

http://www.labbookpages.co.uk/electronics/debounce.html

Fondamentalement, vous garderais un dossier des lectures de balises exécutées récemment, et uniquement le suivi des nouvelles lectures si un certain laps de temps a expiré pour cette même balise ou si la balise n'a jamais été scannée auparavant.

S'il existe un moyen de coopérer avec l'activité et de vous avertir quand elle est terminée, vous pouvez réinitialiser le compteur à la fin de l'activité.