47 votes

Obtenir l'Unique Device ID (UDID) sous Windows Phone 8

Existe-t-il un identifiant unique de périphérique (UDID) ou un identifiant similaire que je peux lire sur Windows Phone 8 (WP8) et qui ne change pas avec les changements de matériel, la réinstallation d'applications, etc.

Dans les anciennes versions de Windows Phone, de tels identifiants existaient : WP7 : État du dispositif pour Windows Phone

WP7.1 : Classe DeviceStatus

Mais ils ne fonctionnent plus avec le SDK 8.0.

Pourquoi je demande : L'idée est qu'un utilisateur obtient des crédits gratuits au premier démarrage de l'application et je veux éviter que l'utilisateur réinstalle l'application pour obtenir de nouveaux crédits gratuits. Un enregistrement avec une adresse e-mail ou un numéro de téléphone pourrait résoudre ce problème, mais si je peux, je ne veux pas déranger les utilisateurs au premier démarrage avec un enregistrement.

---///---SOLUTION----------

Je peux confirmer que DeviceExtendedProperties.GetValue("DeviceUniqueId") fonctionne toujours dans WP 8.0. J'ai été un peu confus lorsque j'ai lu le texte suivant :

Dans Windows Phone OS 7.0, cette classe était utilisée pour interroger les propriétés spécifiques au périphérique. Dans Windows Phone OS 7.1, la plupart des propriétés de la classe DeviceExtendedProperties ont été supprimées et la nouvelle classe DeviceStatus doit être utilisée à la place. Cependant, lorsque cela est approprié, vous pouvez utiliser l'une des propriétés ci-dessous qui ne sont pas dépréciées.

MSDN:Classe DeviceExtendedProperties (propriétés étendues du dispositif)

Je peux exécuter le code suivant, supprimer l'application et la réinstaller et obtenir le même identifiant :

byte[] myDeviceID = (byte[])Microsoft.Phone.Info.DeviceExtendedProperties.GetValue("DeviceUniqueId");
string DeviceIDAsString = Convert.ToBase64String(myDeviceID);
MessageBox.Show(DeviceIDAsString);

31voto

Frazell Thomas Points 4455

Je n'ai pas encore commencé à développer pour Windows Phone 8, je suis toujours sur 7, mais vous devriez pouvoir utiliser l'original. DeviceExtendedProperties pour récupérer l'identifiant unique du dispositif.

DeviceExtendedProperties.GetValue("DeviceUniqueId")

20voto

giacoder Points 536

J'ai eu ce problème avec le retour de la valeur nulle. Puis je me suis souvenu qu'il fallait l'activer.

En WMAppManifest.xml -> Capabilities onglet -> allumer ID_CAP_IDENTITY_DEVICE

8voto

Jani Nevalainen Points 61

Il y a une particularité de ce DeviceUnId - il n'est unique que pour un seul éditeur. Il ne s'agit donc pas vraiment d'un identifiant unique pour l'ensemble de l'appareil, mais d'un identifiant unique pour un éditeur. Nous l'avons remarqué lorsque nous avons travaillé sur un projet client où nous avons essayé d'identifier le même téléphone à partir de différents comptes (le client publie sous deux comptes différents).

4voto

Jaihind Points 2456

Vous pouvez obtenir votre propre Id de dispositif wp8 par DeviceExtendedProperties.GetValue("DeviceUniqueId") Voici une méthode simple pour obtenir l'ID du dispositif sous forme de chaîne de caractères.

byte[] id = (byte[])Microsoft.Phone.Info.DeviceExtendedProperties.GetValue("DeviceUniqueId");
 string   deviceID = Convert.ToBase64String(id);

2voto

prabh.arora Points 81

En ne fournissant pas DeviceUniqueId dans Windows Phone 8 et Windows 8, Microsoft a essayé d'éviter le suivi des utilisateurs, mais avec la pression accrue de la communauté des développeurs, ils le ramènent à nouveau.

Dans Windows 8.1, Microsoft a introduit une nouvelle API AdvertisingId et pourrait également apporter une Id similaire pour identifier un utilisateur unique à travers les applications dans les versions ultérieures de Windows Phone 8.1/9.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X