[android] Hide "NFC Tag type not supported" error on Samsung Galaxy devices

I am working on an app that scans just the UID of MIFARE Classic cards to facilitate attendance registration. I have got it working. However, every time I scan a card on my Galaxy S4, I get a toast stating "NFC tag type not supported".

I want to either block or hide that message while the app is open.

I noticed there was one other question asking for the same thing on a Galaxy S6 but it was down-voted once and then ignored.

I found this conversation on the Samsung Developers forum, however, I could not extract an answer from what is written there:

  if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(intent.getAction())) {
      myTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 
      tagID = intent.getByteArrayExtra(NfcAdapter.EXTRA_ID);
      alertDialog.dismiss(); 

It looks like the alertDialog.dismiss() section is what I need but there is no explanation for where they got the alertDialog object from.

This question is related to android nfc samsung-mobile galaxy mifare

The answer is


Before Android 4.4

What you are trying to do is simply not possible from an app (at least not on a non-rooted/non-modified device). The message "NFC tag type not supported" is displayed by the Android system (or more specifically the NFC system service) before and instead of dispatching the tag to your app. This means that the NFC system service filters MIFARE Classic tags and never notifies any app about them. Consequently, your app can't detect MIFARE Classic tags or circumvent that popup message.

On a rooted device, you may be able to bypass the message using either

  1. Xposed to modify the behavior of the NFC service, or
  2. the CSC (Consumer Software Customization) feature configuration files on the system partition (see /system/csc/. The NFC system service disables the popup and dispatches MIFARE Classic tags to apps if the CSC feature <CscFeature_NFC_EnableSecurityPromptPopup> is set to any value but "mifareclassic" or "all". For instance, you could use:

    <CscFeature_NFC_EnableSecurityPromptPopup>NONE</CscFeature_NFC_EnableSecurityPromptPopup>
    

    You could add this entry to, for instance, the file "/system/csc/others.xml" (within the section <FeatureSet> ... </FeatureSet> that already exists in that file).

Since, you asked for the Galaxy S6 (the question that you linked) as well: I have tested this method on the S4 when it came out. I have not verified if this still works in the latest firmware or on other devices (e.g. the S6).

Since Android 4.4

This is pure guessing, but according to this (link no longer available), it seems that some apps (e.g. NXP TagInfo) are capable of detecting MIFARE Classic tags on affected Samsung devices since Android 4.4. This might mean that foreground apps are capable of bypassing that popup using the reader-mode API (see NfcAdapter.enableReaderMode) possibly in combination with NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK.


Examples related to android

Under what circumstances can I call findViewById with an Options Menu / Action Bar item? How to implement a simple scenario the OO way My eclipse won't open, i download the bundle pack it keeps saying error log getting " (1) no such column: _id10 " error java doesn't run if structure inside of onclick listener Cannot retrieve string(s) from preferences (settings) strange error in my Animation Drawable how to put image in a bundle and pass it to another activity FragmentActivity to Fragment A failure occurred while executing com.android.build.gradle.internal.tasks

Examples related to nfc

Hide "NFC Tag type not supported" error on Samsung Galaxy devices Reading NFC Tags with iPhone 6 / iOS 8 Reading RFID with Android phones Can an Android NFC phone act as an NFC tag? Bluetooth pairing without user confirmation

Examples related to samsung-mobile

Hide "NFC Tag type not supported" error on Samsung Galaxy devices Chrome's remote debugging (USB debugging) not working for Samsung Galaxy S3 running android 4.3 sendUserActionEvent() is null Turn ON/OFF Camera LED/flash light in Samsung Galaxy Ace 2.2.1 & Galaxy Tab

Examples related to galaxy

Unable to capture screenshot. Prevented by security policy. Galaxy S6. Android 6.0 Hide "NFC Tag type not supported" error on Samsung Galaxy devices Turn ON/OFF Camera LED/flash light in Samsung Galaxy Ace 2.2.1 & Galaxy Tab

Examples related to mifare

Hide "NFC Tag type not supported" error on Samsung Galaxy devices