{
  "url": "https://proudtek.com/guides/nfc-tag-programming-android-guide/",
  "sourceUrl": "https://proudtek.com/guides/nfc-tag-programming-android-guide/",
  "title": "NFC Tag Programming on Android — Developer Guide",
  "description": "A comprehensive guide to NFC tag programming on Android. Covering App Store apps for code-free tag writing, the android.nfc framework for developers,...",
  "kind": "article",
  "imageUrl": "https://proudtek.com/landing-images/nfc-tag-programming-android-guide-hero.jpg",
  "imageAlt": "RFID-RC522 reader/writer module (NXP MFRC522, 13.56 MHz) for reading and writing NFC / MIFARE Classic tags and cards — antenna coil, RF-field symbol and SPI pin header visible on the blue PCB",
  "imageGallery": [
    {
      "url": "https://proudtek.com/landing-images/nfc-tag-programming-android-guide-hero.jpg",
      "alt": "RFID-RC522 reader/writer module (NXP MFRC522, 13.56 MHz) for reading and writing NFC / MIFARE Classic tags and cards — antenna coil, RF-field symbol and SPI pin header visible on the blue PCB"
    }
  ],
  "breadcrumbs": [
    {
      "name": "Home",
      "url": "https://proudtek.com/"
    },
    {
      "name": "Guides",
      "url": "https://proudtek.com/guides/"
    },
    {
      "name": "NFC Tag Programming on Android — Developer Guide",
      "url": "https://proudtek.com/guides/nfc-tag-programming-android-guide/"
    }
  ],
  "summary": [
    "A comprehensive guide to NFC tag programming on Android."
  ],
  "faq": [
    {
      "question": "Can all Android phones program NFC tags?",
      "answer": "Most modern Android phones (2015 and later flagship models) include NFC hardware capable of both reading and writing NFC tags. To verify, go to Settings > Connected Devices > NFC (exact path varies by OEM). Samsung, Google Pixel, OnePlus, Xiaomi flagship, and most Sony/Motorola flagships support full NFC read/write. Budget Android phones (under US$200 mid-market devices) are inconsistent. Some include NFC, some don't. For commercial programmes targeting consumer reach, assume ~80-90% of your Android audience has NFC; the remainder are on NFC-less budget devices where you need a QR-code fallback."
    },
    {
      "question": "What's the difference between Android NFC programming and iPhone NFC programming?",
      "answer": "Android has a more permissive NFC API with full access to chip-level features. Android apps can read and write MIFARE Classic, fully manage MIFARE DESFire AES sessions, handle FeliCa, and use Host-based Card Emulation to turn the phone into an NFC card. iPhone Core NFC restricts access. MIFARE Classic is not supported on iPhone, and only limited HCE-like capabilities exist (Apple Wallet passes, which are not generally-programmable by third-party apps). For consumer programmes using NDEF URL records, Android and iPhone behave equivalently. For advanced programmes (encrypted access control, transit emulation, Amiibo), Android is the only viable platform."
    },
    {
      "question": "Do I need to write Android code to program NFC tags?",
      "answer": "No. Free Play Store apps (NFC Tools, NXP TagWriter, NXP TagInfo, GoToTags) let any Android user program NFC tags without writing code. These apps handle the android.nfc interaction, NDEF encoding, memory management and tag verification. Coding is only required for custom workflows. Building your own branded app that reads/writes NFC, integrating NFC into an existing app, handling advanced chip features (NTAG 424 DNA SUN verification, MIFARE DESFire custom applications), or implementing Host-based Card Emulation. Most commercial NFC programmes start with Play Store apps and only move to custom development when the use case requires it."
    },
    {
      "question": "Can Android read and write MIFARE Classic tags?",
      "answer": "Yes. Android's MifareClassic TagTechnology provides full MIFARE Classic 1K / 4K read and write capability, including sector-level authentication with known keys and block-level data access. This is a capability iPhone does not have (Apple Core NFC excludes MIFARE Classic). Android MIFARE Classic support is widely used for legacy access-control integration, fare-card programming, and reverse-engineering / research. Keep in mind that MIFARE Classic's Crypto1 cipher has known cryptographic vulnerabilities (published 2007-2008); new programmes should use MIFARE DESFire EV2/EV3 with AES-128 instead of continuing on Classic."
    },
    {
      "question": "How does Android's tag dispatch system work?",
      "answer": "When Android detects an NFC tag, it looks at the tag's NDEF content and TagTechnology type and matches them against intent filters declared by installed apps. The tag dispatch priority is: (1) NDEF_DISCOVERED filters with specific MIME type or URI scheme match; (2) TECH_DISCOVERED filters matching a specific TagTechnology (MifareClassic, Ndef, IsoDep); (3) TAG_DISCOVERED as a catch-all fallback. The highest-priority matching activity is launched. App developers can declare intent filters in AndroidManifest.xml to bind specific NFC experiences to their app without requiring the app to be in foreground. For apps in foreground that want to capture all NFC events, use NfcAdapter.enableForegroundDispatch() which bypasses normal dispatch."
    },
    {
      "question": "What is Host-based Card Emulation (HCE) and what can I do with it?",
      "answer": "HCE (Android 4.4+) lets an Android app emulate an NFC contactless card to an external NFC reader. The phone behaves like an ISO 14443 Type A or ISO 14443-4 card, receiving APDU commands from the reader and responding with emulated-card data. HCE is the foundation for Google Pay (payment card emulation), countless branded transit apps (e.g., BART, Beijing Yikatong), loyalty and membership apps (Starbucks, gym cards), and access-control apps (corporate badge emulation). HCE-F (Android 7+) adds FeliCa emulation for Japanese transit cards. For enterprise programmes requiring HCE, the development pattern is a HostApduService that handles reader APDU commands and optionally leverages the device's Secure Element (where available) for hardware-backed key storage."
    },
    {
      "question": "What changed for NFC apps in Android 16 and Android 17?",
      "answer": "Three significant behavioural changes per Google's developer documentation. First, Android 16 routes NFC tags carrying http:// or https:// URI records through `ACTION_VIEW` rather than `ACTION_NDEF_DISCOVERED`. Apps that previously matched on web URLs in their NDEF intent filter need to add an `ACTION_VIEW` filter for their domain or rely on Android App Links. Second, Android 16 introduced a per-app NFC tag-scan allowlist; on the first NFC intent the user is asked to allow the app to launch via NFC, and apps can query `NfcAdapter.isTagIntentAllowed()` or trigger `ACTION_CHANGE_TAG_INTENT_PREFERENCE` to re-prompt. The control lives at Settings > Apps > Special app access > Launch via NFC. Third, Android 17 (API 37) deprecates `ACTION_TAG_DISCOVERED` (use NDEF or TECH variants instead), and apps targeting the new SDK level must protect NFC-receiving activities with the new `android.permission.DISPATCH_NFC_MESSAGE` permission so only the NFC system service can dispatch intents to them. Stopped apps no longer receive NFC intents at all. Migrate filters and manifests early so existing programmes don't break when users update their OS."
    },
    {
      "question": "What NFC chip should I choose for my Android programme?",
      "answer": "For consumer NDEF programmes (URL redirects, business cards, Wi-Fi sharing, Google Review cards, restaurant menus), NTAG 213 is the default. Cheap, Android-universal, and fits short URLs. For longer content, step up to NTAG 215 (504 bytes) or NTAG 216 (888 bytes). For authentication or tamper-evident programmes, NTAG 424 DNA with SUN messaging. For legacy access control, MIFARE Classic 1K; for new high-security access control, MIFARE DESFire EV3 with AES-128. For industrial and pharmaceutical programmes needing longer read range, ISO 15693 (ICODE SLIX). For cross-platform iPhone and Android programmes, stick to NTAG-family or DESFire chips since those work on both platforms; avoid MIFARE Classic where iPhone reach matters."
    }
  ],
  "procurementFields": [],
  "collectionGuidanceFields": [],
  "coreGuidanceFields": [],
  "articleGuidanceFields": [
    {
      "label": "Best for",
      "value": "NFC Tag Programming on Android — Developer Guide supports RFID and NFC evaluation, comparison, and sourcing decisions."
    },
    {
      "label": "Compare first",
      "value": "Compare NFC Tag Programming on Android — Developer Guide against reader compatibility, chip family, material, and deployment environment."
    },
    {
      "label": "What to confirm",
      "value": "Confirm target application, compatibility requirements, customization needs, quantity, and sample expectations before quoting NFC Tag Programming on Android — Developer Guide."
    }
  ],
  "sourceLinks": [],
  "related": [],
  "productSpecs": [],
  "machineJsonUrl": "https://proudtek.com/machine/guides/nfc-tag-programming-android-guide.json",
  "machineTextUrl": "https://proudtek.com/machine/guides/nfc-tag-programming-android-guide.txt",
  "author": {
    "name": "Nancy Wu",
    "title": "NFC Product Specialist",
    "expertise": [
      "NFC business cards",
      "Google Review NFC cards",
      "NFC tag programming",
      "Digital product authentication"
    ]
  },
  "publisher": "Proud Tek Co., Limited",
  "datePublished": "2026-04-19",
  "dateModified": "2026-06-10T18:00:00Z",
  "reviewedBy": "Proud Tek Editorial Team",
  "lastReviewedDate": "2026-06-10T18:00:00Z",
  "credentials": [
    "ISO 9001:2015",
    "ISO 14001:2015",
    "RoHS Compliant",
    "CE Marking",
    "REACH Compliant"
  ],
  "generatedAt": "2026-03-16T01:42:30.697Z"
}