I had the same problem and fixed it in this sentence in android doc http://developer.android.com/guide/topics/connectivity/nfc/nfc.html#tech-disc
βIf your activity filters for ACTION_TECH_DISCOVERED intent, you must create an XML resource file that indicates the technologies that your activity supports in the set of technical lists. Your activity is considered a coincidence if the set of technical lists is a subset of the technologies supported by the tag that you can get, by calling getTechList ().
For example, if the scanned tag supports MifareClassic, NdefFormatable, and NfcA, your set of technical lists should indicate all three, two, or one of the technologies (and nothing more) so that your activity is mapped. "
your nfc_tech_list should define a subset of the technogems supported by the current tag.
- Define your manifest as follows:
<intent-filter> <action android:name="android.nfc.action.TECH_DISCOVERED"/> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/nfc_tech_list" /> </activity>
-define xml nfc_check_list:
<?xml version="1.0" encoding="utf-8"?> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <tech-list> <tech>android.nfc.tech.NdefFormatable</tech> <tech>android.nfc.tech.MifareUltralight</tech> </tech-list> <tech-list> <tech>android.nfc.tech.NfcA</tech> <tech>android.nfc.tech.Ndef</tech> </tech-list> <tech-list> <tech>android.nfc.tech.NfcB</tech> <tech>android.nfc.tech.Ndef</tech> </tech-list> </resources>
This will work just fine.
source share