Lire une étiquette Mifare en utilisant Windows Phone 8 NFC?
Windows Phone 8 support NFC Mifare Ultralight/Classique les balises de base?
J'utilise ce code pour accéder à la technologie NFC de l'appareil sur le Nokia Lumia 920 (exemple de code a été prise à partir de NDEF Tag Lecteur NFC NDEF Tag Reader)
public partial class MainPage : PhoneApplicationPage
{
public MainPage()
{
InitializeComponent();
ProximityDevice device = ProximityDevice.GetDefault();
device.DeviceArrived += DeviceArrived;
device.DeviceDeparted += DeviceDeparted;
device.SubscribeForMessage("NDEF", MessageReceived);
}
private void DeviceArrived(ProximityDevice sender)
{
//this event occurs when I am tapping any of my tags (tried 5 different Mifare Ultralight/Classic)
}
private void DeviceDeparted(ProximityDevice sender)
{
//this event occurs when I am moving away any tag
}
private void MessageReceived(ProximityDevice sender, ProximityMessage message)
{
//this event is never fired!!! :(
}
}
Le NFC est sur WP8 défectueux ou est-ce code de mal?
Mise à jour:
À partir de ce document Le NFC Forum Type Tags vous pouvez trouver que Mifare Ultralight est compatible avec NDEF. Les appareils Android pouvez lire les étiquettes de ce type facilement.
source d'informationauteur A-student
Vous devez vous connecter pour publier un commentaire.
Mifrare est pris en charge sur WP8 et sur le Lumia 920. Je devine ici, mais il est probable que votre Mifare tag NFC n'est pas formaté/initialisé à NDEF. Vous pouvez demander à vos tags NFC pour être NDEF formaté lorsque vous achetez des tags NFC.
Le Lumia 920 puce (NXP PN544 de la famille) prend en charge les types de balises (au moins):
Concernant les balises NFC NDEF mise en forme:
Sincèrement,
-- Justin Angel
Ingénieur Principal pour Windows Phone Developer Expérience chez Nokia
Le code que vous avez posté est censé lire NDEF messages à partir d'un tag NFC.
Alors que Mifare est également utilisé avec des tags NFC, que la ressemblance s'arrête là: c'est complètement différent de ce protocole avec son propre (propriété) de format de données.
Donc, ce code n'est pas vraiment un problème (ni le NFC est sur WP8 généralement "défectueuses"), mais si vous vous attendez à lire Mifare balises, cette approche ne fonctionnera pas pour vous.
Je ne sais pas si c'est possible de lire les tags Mifare avec WP8: cela dépend du matériel (comme Mifare utilise non-ISO images) ainsi que la prise en charge des API. Une rapide recherche sur Google suggère que le SDK Java pour les anciens téléphones Nokia prend en charge Mifare, de sorte que le support matériel peut être là. N'ai pas trouver quoi que ce soit pour WP8, cependant, de sorte que ce sera plus que probablement besoin de quelques poussées de codage, si, il fonctionne à tous.
Pour vous donner une idée de ce qui est nécessaire: une fois que vous obtenez votre DeviceArrived événement (ce qui signifie que le lecteur a détecté une ISO tag NFC), vous devez obtenir l'UID de la carte. Cela devrait être assez facile, comme c'est la norme ISO fonctionnalité.
Ensuite, vous avez besoin de pouvoir envoyer directement Mifare d'authentification et de lecture/écriture secteur de commandes à la balise. Depuis ces commandes ne sont pas des normes ISO, c'est là où les choses deviennent plus difficiles et lecteur-dépendante. D'avoir passé ce stade vraiment protocole requis de la documentation et de travail Mifare outil de test pour votre téléphone. Enfin, la plupart des cartes Mifare sont complètement illisibles, sauf si vous avez au moins savoir un secteur clé, et les données de l'application est le format propriétaire (spécifique à l'émetteur de la carte) ainsi, de sorte que même après tout ce travail, il n'est pas garanti que vous pouvez obtenir de l'information utile sur la carte...
Des Applications Windows Phone 8 n'ont accès au très haut niveau, les bibliothèques, et ne peut pas lire les étiquettes qui ne sont pas NDEF formaté.
MIFARE balises UL devez utiliser le NFC Forum NDEF de Type 2 standard, ce qui est simpliste en raison de la petite 48 octets de la mémoire de l'étiquette.
Si vous avez un faible niveau de lecture/écriture, vous pouvez faire votre balise UL NDEF conforme sans modifier la majorité de vos données, mais vous aurez besoin de sacrifice:
La balise est formaté comme suit: (référence - http://www.nfc-forum.org/specs/spec_list/#tagtypes)
EXEMPLE: Tag a ce type de message ExternalRtd, et le type d'enregistrement "abc" (type d'enregistrement devrait, techniquement, être au format "urn:nfc:poste:nom de la société.com:typename" pour être pleinement NDEF conforme, mais on ne peut pas se permettre d'utiliser beaucoup d'espace)
[Page No. Octet N.] , La Valeur , Les Commentaires
[5, 3] , 0x61 , Troisième octet de type, 0x63 = 99 = 'c'
Le solde de 40 octets de la balise, pages 6 à 11 ans, sont à votre charge.
Si vous voulez juste pour Initialiser le tag de sorte que le téléphone peut lire et de faire le reste, il suffit d'écrire le CC, et seulement à la TLV avec un L de zéro et n'V. (4,0 = 0x03 et 4,1 =0x00).
J'ai eu un problème similaire, j'ai acheté le pack de tags NFC sur eBay, mais ils n'étaient pas NDEF formaté. WP8 peuvent utiliser seulement NDEF formaté balises, j'ai donc dû trouver une façon de les mettre en forme. J'ai trouvé sur Twitter un gars avec NFC équipé d'un téléphone Android et il a formaté ces balises pour moi.
Dommage que Windows Phone 8 ne peut pas faire cela.
Vous pouvez voter ici sur officiel WPdev Uservoice page pour le faible niveau de l'API NFC fonction:
Faible niveau NFC API pour NDEF mise en forme et de (dé)verrouillage tags