Ocultar error "Tipo de etiqueta NFC no admitido" en los dispositivos Samsung Galaxy

Estoy trabajando en una aplicación que escanea sólo el UID de tarjetas MIFARE Classic para facilitar el registro de asistencia. Lo tengo trabajando. Sin embargo, cada vez que escaneo una tarjeta en mi Galaxy S4, obtengo un tostado que indica "tipo de etiqueta NFC no compatible" en lugar de obtener el UID de la etiqueta.

Quiero bloquear u ocultar ese mensaje mientras la aplicación está abierta.

Me di cuenta de que había otra pregunta pidiendo lo mismo en un Galaxy S6, pero fue votado una vez y luego ignorado.

He encontrado esta conversación en el foro de desarrolladores de Samsung, sin embargo, no pude extraer una respuesta de lo que está escrito allí:

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

Parece que la sección alertDialog.dismiss() es lo que necesito, pero no hay ninguna explicación de dónde obtuvieron el objeto alertDialog .

Antes de Android 4.4

Lo que está intentando hacer simplemente no es posible desde una aplicación (al menos no en un dispositivo no enraizado / no modificado). El sistema de Android (o más específicamente el servicio del sistema NFC) muestra el mensaje "Tipo de etiqueta NFC no admitido" antes y en lugar de enviar la etiqueta a su aplicación. Esto significa que el servicio del sistema NFC filtra las etiquetas MIFARE Classic y nunca notifica ninguna aplicación sobre ellas. En consecuencia, su aplicación no puede detectar las etiquetas MIFARE Classic ni eludir ese mensaje emergente.

En un dispositivo con raíz, es posible que pueda omitir el mensaje utilizando

  1. Xposed para modificar el comportamiento del servicio NFC, o
  2. El servicio del sistema NFC deshabilita la ventana emergente y envía las etiquetas MIFARE Classic a las aplicaciones si la característica CSC <CscFeature_NFC_EnableSecurityPromptPopup> se establece en cualquier valor, pero " Mifareclassic "o" all ", por ejemplo:

     <CscFeature_NFC_EnableSecurityPromptPopup>NONE</CscFeature_NFC_EnableSecurityPromptPopup> 

    Puede agregar esta entrada, por ejemplo, al archivo "/system/csc/others.xml" (dentro de la sección <FeatureSet> ... </FeatureSet> que ya existe en ese archivo).

Desde entonces, usted pidió el Galaxy S6 (la pregunta que usted enlazó ) también: He probado este método en el S4 cuando salió. He verificado si esto todavía funciona en el último firmware o en otros dispositivos (por ejemplo, el S6).

Desde Android 4.4

Esto es pura adivinanza, pero según esto , parece que algunas aplicaciones (por ejemplo, NXP TagInfo) son capaces de detectar las etiquetas MIFARE Classic en dispositivos Samsung afectados desde Android 4.4. Esto podría significar que las aplicaciones de primer plano son capaces de ignorar esa ventana emergente utilizando la API de modo de lectura ( véase NfcAdapter.enableReaderMode ) posiblemente en combinación con NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK .

Si usted está recibiendo este error en un Samsung S6 o lo que sea, puede deshacerse del mensaje de error por ir a:

  • Configuración> (el diente en la parte superior derecha de las notificaciones)
  • Conexiones> (1ª opción)
  • NFC y pago (opción de sexta opción, apagar esto)
  • AlarmManager no funciona en dispositivos Samsung en Lollipop
  • Android: Señal fatal 11 (SIGSEGV) en 0x00000000 (código = 1) en movie.draw
  • SGS-3 bug relacionado con la lista de conversaciones SMS?
  • Recuperación de datos de huellas digitales?
  • Mensaje "Tipo de etiqueta NFC no admitido"
  • Detección del navegador Android Phone
  • Adb no reconoce Samsung Note II y Nota 10.1
  • Archivos espurios en el directorio de datos de mi aplicación
  • Cómo detener la creación excesiva de objetos en los teléfonos Samsung?
  • No hay procesos debugables en android studio cuando está conectado con el teléfono que ejecuta Android 6.0
  • Las incorporaciones de iframe de YouTube no pueden reproducirse automáticamente en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.