wake-up-neo.net

Rufen Sie unter Windows Phone 8 die eindeutige Geräte-ID (UDID) ab

Gibt es eine eindeutige Geräte-ID (UDID) oder eine ähnliche ID, die ich unter Windows Phone 8 (WP8) auslesen kann und die sich bei Hardwareänderungen, App-Neuinstallationen usw. nicht ändert?

In älteren Windows Phone-Versionen gab es solche IDs: WP7: Gerätestatus für Windows Phone

WP7.1: DeviceStatus-Klasse

Mit SDK 8.0 funktionieren sie jedoch nicht mehr.

Warum ich frage: .__ Die Idee ist, dass ein Benutzer beim ersten Start der App einige kostenlose Credits erhält, und ich möchte vermeiden, dass der Benutzer die App einfach neu installiert, um neue kostenlose Credits zu erhalten. Eine Registrierung mit E-Mail oder Telefonnummer könnte dieses Problem lösen, aber wenn ich kann, möchte ich die Benutzer nicht beim ersten Start mit einer Registrierung belästigen.

---///---LÖSUNG----------

Ich kann bestätigen, dass DeviceExtendedProperties.GetValue ("DeviceUniqueId") weiterhin in WP 8.0 funktioniert. Ich bin etwas verwirrt, als ich den folgenden Text las:

In Windows Phone OS 7.0 wurde diese Klasse zum Abfragen von gerätespezifischen .__ verwendet. Eigenschaften. In Windows Phone OS 7.1 sind die meisten Eigenschaften in DeviceExtendedProperties wurden nicht mehr unterstützt und der neue DeviceStatus Klasse sollte stattdessen verwendet werden. Gegebenenfalls können Sie jedoch Verwenden Sie dennoch eine der folgenden Eigenschaften, die nicht veraltet sind.

MSDN: DeviceExtendedProperties-Klasse

Ich kann den folgenden Code ausführen, die App löschen, erneut installieren und dieselbe ID erhalten:

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

Ich habe noch nicht mit der Entwicklung für Windows Phone 8 (noch unter 7) begonnen, aber Sie sollten immer noch in der Lage sein, die ursprüngliche Device ExtendedProperties - Klasse zu verwenden, um die eindeutige Geräte-ID zurückzuholen.

DeviceExtendedProperties.GetValue("DeviceUniqueId")
31
Frazell Thomas

Ich hatte dieses Problem mit der Rückgabe des Nullwerts. Dann wird daran erinnert, dass es eingeschaltet sein muss.

In WMAppManifest.xml -> Capabilities tab -> einschalten ID_CAP_IDENTITY_DEVICE

20
giacoder

Diese DeviceUniqueId hat eine Wendung - sie ist nur für einen Publisher einzigartig. Es handelt sich also nicht um eine geräteübergreifende eindeutige Kennung, sondern um eine eindeutige Geräte-ID für einen Herausgeber. Wir haben festgestellt, dass wir an einem Kundenprojekt gearbeitet haben, bei dem wir versucht hatten, dasselbe Telefon von verschiedenen Konten aus zu identifizieren (Kunden veröffentlicht unter zwei verschiedenen Konten).

8
Jani Nevalainen

Sie können Ihre eigene wp8-Geräte-ID über DeviceExtendedProperties.GetValue ("DeviceUniqueId") abrufen

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

Ich habe das benutzt:

    private static String getDeviceId()
        {
            byte[] id = (byte[])Microsoft.Phone.Info.DeviceExtendedProperties.GetValue("DeviceUniqueId");
            return BitConverter.ToString(id).Replace("-", string.Empty);
        }

Der Schlüssel besteht jedoch darin, ID_CAP_IDENTITY_DEVICE in WMAppManifest zu überprüfen. Andernfalls wird ein Fehler ausgegeben.

2
CarmenA

Microsoft hat zwar keine DeviceUniqueId in Windows Phone 8 und Windows 8 zur Verfügung gestellt und versucht, User Tracking zu vermeiden. Mit zunehmendem Druck der Entwicklergemeinde bringen sie es jedoch zurück.

In Windows 8.1 hat Microsoft eine neue AdvertisingId-API eingeführt. Möglicherweise enthält Microsoft eine ähnliche ID, um einen eindeutigen Benutzer in allen nachfolgenden Windows Phone 8.1/9-Versionen zu identifizieren.

2
prabh.arora

Ich fand dies eine neue HostInformation.PublisherHostId-Eigenschaft Weitere Informationen finden Sie unter http://msdn.Microsoft.com/en-us/library/windowsphone/develop/windows.phone.system.analytics.hostinformation. publisherhostid.aspx ..

1
raevilman
string myDeviceID = (byte[])DeviceExtendedProperties.GetValue("DeviceUniqueId");
string DeviceIDAsString = Convert.ToBase64String(myDeviceID);

Ich habe diese für Windows Phone eindeutige Geräte-ID verwendet.

1
sunny_iexceed

Die obigen Antworten funktionieren für Windows Phone 7 und 8 Silverlight. Sie funktionieren jedoch nicht für Windows Phone RT (Universal)) oder Store Apps, da das SDK diese DLL-Bibliothek nicht enthält (Microsoft.Phone).

So erhalten Sie die Geräte-ID und den Namen (und möglicherweise weitere Informationen) unter Windows Phone 8.1 RT (Universal/Store Apps).

private string GetHardwareId()
{
    var token = HardwareIdentification.GetPackageSpecificToken(null);
    var hardwareId = token.Id;
    var dataReader = Windows.Storage.Streams.DataReader.FromBuffer(hardwareId);

    byte[] bytes = new byte[hardwareId.Length];
    dataReader.ReadBytes(bytes);

    return BitConverter.ToString(bytes);
}

Weitere Informationen zum Lesen der Geräteinformationen unter Windows RT finden Sie hier

0
Has AlTaiar