Masquer “Tag NFC de type non pris en charge” erreur sur les appareils Samsung Galaxy
Je suis en train de travailler sur une application qui scanne juste l'UID de cartes MIFARE Classique à faciliter la fréquentation de l'enregistrement. J'ai eu de travail. Cependant, chaque fois que je scan d'une carte sur mon Galaxy S4, j'obtiens un toast en indiquant "tag NFC de type non pris en charge".
Je veux bloquer ou masquer le message, tandis que l'application est ouverte.
J'ai remarqué qu'il y avait une autre question pour demander la même chose sur un Galaxy S6, mais il est en baisse de-voté une fois et alors ignorée.
J'ai trouvé cette conversation sur le Samsung forum des Développeurs, cependant, je ne pouvais pas extrait d'une réponse de ce qui y est écrit:
if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(intent.getAction())) {
myTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
tagID = intent.getByteArrayExtra(NfcAdapter.EXTRA_ID);
alertDialog.dismiss();
Il ressemble à la alertDialog.dismiss()
section est ce dont j'ai besoin, mais il n'y a pas d'explication pour le cas où ils ont obtenu le alertDialog
objet.
OriginalL'auteur Duncan Tyrell | 2016-03-10
Vous devez vous connecter pour publier un commentaire.
Avant D'Android 4.4
Ce que vous essayez de faire est tout simplement pas possible à partir d'une application (au moins pas sur un non-enracinée/non modifié de l'appareil). Le message "tag NFC de type non pris en charge" est affiché par le système Android (ou plus précisément la technologie NFC, le système de service) avant et au lieu de l'envoi de l'étiquette de votre application. Cela signifie que le NFC service de système de filtres MIFARE Classic balises et jamais notifie à n'importe quelle application sur eux. Par conséquent, votre application ne peut pas détecter MIFARE Classic de tags ou de contourner ce message.
Sur un dispositif enracinée, vous pouvez être en mesure de contourner le message à l'aide soit
la SCC (Consommateurs de la Personnalisation du Logiciel) configuration de la fonctionnalité des fichiers sur la partition système (reportez-vous à /system/csc/. Le NFC service système désactive les pop-up et distribue MIFARE Classic étiquettes pour les applications, si le SCC fonction
<CscFeature_NFC_EnableSecurityPromptPopup>
est réglé à une valeur, mais "mifareclassic" ou "tous". Par exemple, vous pourriez utiliser:Vous pouvez ajouter cette entrée, par exemple, le fichier "/system/csc/others.xml" (au sein de la section
<FeatureSet> ... </FeatureSet>
qui existe déjà dans ce fichier).Depuis, vous avez demandé pour le Galaxy S6 (le la question que vous avez lié): j'ai testé cette méthode sur le S4 quand il est sorti. Je n'ai pas vérifié si cela fonctionne encore dans la dernière version du firmware ou sur d'autres appareils (par exemple, la S6).
Depuis Android 4.4
C'est de la pure supposition, mais
selon cette(lien n'est plus disponible), il semble que certaines applications (par exemple, NXP TagInfo) sont capable de détecter MIFARE Classic tags sur les appareils Samsung depuis Android 4.4. Cela signifie qu'à l'avant-plan des applications sont capables de passer à côté de que pop-up en utilisant le lecteur en mode API ( reportez-vous àNfcAdapter.enableReaderMode
), éventuellement en combinaison avecNfcAdapter.FLAG_READER_SKIP_NDEF_CHECK
.Non, c'est quelque chose que Samsung a inventé pour embêter les développeurs (et en fait de faire les utilisateurs de fou chez les développeurs qui ne peut même pas changer ce comportement).
Le Samsung fil de discussion du forum @MichaelRoland lié est allé, mais il y a un Xamarin/monodroid exemple appelé CardReader à l'aide de EnableReaderMode et SkipNdefCheck que montre la lecture du numéro de série, tout en supprimant la "non prise en charge" du message. J'ai testé et ça marche sur un Samsung Galaxy S6 sur Android 7.
OriginalL'auteur Michael Roland