Informationen über das Gerät sind in manchen Fällen unerlässlich. Gerade zu Testzwecken ist es äußerst ratsam und sinnvoll, sich die Speicherinformationen näher anzusehen.

Windows Phone OS 7.0

Für Windows Phone OS 7.0 wird hier die Klasse DeviceExtendedProperties aus dem Namespace Microsoft.Phone.Info zur Verfügung gestellt. Über deren Methoden GetValue bzw. TryGetValue können die gewünschten Informationen bezogen werden.

Nachfolgend eine Liste der Informationen, die abgerufen werden können.

Eigenschaft Typ Beschreibung
DeviceManufacturer String (max. 256) Name des Herstellers
DeviceName String (max. 256) Name des Gerätes
DeviceUniqueId Byte[] Eindeutiger Hash des Geräts
DeviceFirmwareVersion String Firmware Version
DeviceHardwareVersion String Hardware Version
DeviceTotalMemory Int64 Physikalischer RAM in Bytes
ApplicationCurrentMemoryUsage Int64 Speicherverbrauch der aktuellen Anwendung in Bytes
ApplicationPeakMemoryUsage Int64 Speicherverbrauch-Spitze der aktuellen Anwendung in Bytes

 

Hier ein klein wenig Code für eine beispielhafte Ausgabe:

string[] properties = new[] 

{

    "DeviceManufacturer",

    "DeviceName",

    "DeviceUniqueId",

    "DeviceFirmwareVersion",

    "DeviceHardwareVersion",

    "DeviceTotalMemory",

    "ApplicationCurrentMemoryUsage",

    "ApplicationPeakMemoryUsage"

};

 

properties.ToList().ForEach

    (

        item => Debug.WriteLine

            (

                string.Format("{0}: {1}", item, DeviceExtendedProperties.GetValue(item))

            )

    );

Und das ist das Ergebnis, wenn am Emulator ausgeführt:

DeviceManufacturer:            Microsoft

DeviceName:                    XDeviceEmulator

DeviceUniqueId:                System.Byte[]

DeviceFirmwareVersion:         0.0.0.0

DeviceHardwareVersion:         0.0.0.0

DeviceTotalMemory:             390012928

ApplicationCurrentMemoryUsage: 13402112

ApplicationPeakMemoryUsage:    23425024

Wichtiger Hinweis: Es ist unbedingt zu prüfen, ob in einer Release-Version auf diese Informationen zugegriffen werden muss, da die Anwendung am Zielgerät ein zusätzliches Recht einfordert und der Benutzer darauf hingewiesen wird. Wenn also nicht unbedingt notwendig, sollte dies nur für Testzwecke verwendet werden.

Windows Phone OS 7.1

Mit Mango ändert sich dies. Die Klasse DeviceExtendedProperties ist nicht mehr zu verwenden. Stattdessen wurde die Klasse DeviceStatus eingeführt. Diese befindet sich ebenfalls im Namespace Microsoft.Phone.Info. Darüber werden die über DeviceExtendedProperties möglichen Abfragewerte als Eigenschaften zur Verfügung gestellt. Die Eigenschaft DeviceUniqueId entfällt. Zusätzlich werden die Eigenschaften

  • IsKeyboardDeployed
  • IsKeyboardPresent
  • PowerSource

angeboten. Ebenso verfügbar sind zwei Ereignisse:

  • KeyboardDeployedChanged
  • PowerSourceChanged

Weitere Informationen finden sich im MSDN-Eintrag zu DeviceStatus.

Über den Autor

Norbert Eder

Ich bin ein leidenschaftlicher Softwareentwickler und Fotograf. Mein Wissen und meine Gedanken teile ich nicht nur hier im Blog, sondern auch in Fachartikeln und Büchern.