Android system NFC framework introduction and develop guide
How NFC Tags are Dispatched to Applications
When the tag dispatch system is done creating an intent that encapsulates the NFC tag and its identifying information, it sends the intent to an interested application that filters for the intent. If more than one application can handle the intent, the Activity Chooser is presented so the user can select the Activity. The tag dispatch system defines three intents, which are listed in order of highest to lowest priority:
1. ACTION_NDEF_DISCOVERED: This intent is used to start an Activity when a tag that
contains an NDEF payload is scanned and is of a recognized type. This is the highest
priority intent, and the tag dispatch system tries to start an Activity with this intent before any other intent, whenever possible.
2. ACTION_TECH_DISCOVERED: If no activities register to handle the
ACTION_NDEF_DISCOVERED intent, the tag dispatch system tries to start an application with this intent. This intent is also directly started (without starting
ACTION_NDEF_DISCOVERED first) if the tag that is scanned contains NDEF data that
cannot be mapped to a MIME type or URI, or if the tag does not contain NDEF data but is of a known tag technology.
3. ACTION_TAG_DISCOVERED: This intent is started if no activities handle the
ACTION_NDEF_DISCOVERED or ACTION_TECH_DISCOVERED intents.
The basic way the tag dispatch system works is as follows: