获取 Windows Phone 手机系统信息

wpf:

  1 <phone:PhoneApplicationPage

  2     x:Class="ABSystemInfo.MainPage"

  3     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

  4     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

  5     xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"

  6     xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"

  7     xmlns:controls="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls"

  8     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

  9     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

 10     mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"

 11     FontFamily="{StaticResource PhoneFontFamilyNormal}"

 12     FontSize="{StaticResource PhoneFontSizeNormal}"

 13     Foreground="{StaticResource PhoneForegroundBrush}"

 14     SupportedOrientations="Portrait"  Orientation="Portrait"

 15     shell:SystemTray.IsVisible="True">

 16  

 17     <!--LayoutRoot is the root grid where all page content is placed-->

 18     <Grid x:Name="LayoutRoot" Background="Transparent">

 19         <!--Pivot Control-->

 20         <controls:Pivot Title="DEVICE INFO">

 21             <controls:PivotItem Header="device">

 22                 <Grid>

 23                     <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Height="607" Width="456">

 24                         <TextBlock Text="Device Manufacturer" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 25                         <TextBlock Text="0" Margin="10" Name="DeviceManufacturerTextBlock" FontSize="36" TextAlignment="Center"/>

 26                         <TextBlock Text="Device Name" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 27                         <TextBlock Text="0" Margin="10" Name="DeviceNameTextBlock" FontSize="36" TextAlignment="Center"/>

 28                         <TextBlock Text="Device Firmware Version" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 29                         <TextBlock Text="0" Margin="10" Name="DeviceFirmwareVersionTextBlock" FontSize="36" TextAlignment="Center"/>

 30                         <TextBlock Text="Device Hardware Version" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 31                         <TextBlock Text="0" Margin="10" Name="DeviceHardwareVersionTextBlock" FontSize="36" TextAlignment="Center"/>

 32                         </StackPanel>

 33  

 34                 </Grid>

 35             </controls:PivotItem>

 36  

 37             <controls:PivotItem Header="memory">

 38                 <Grid>

 39                     <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Height="607" Width="456">

 40                         <TextBlock Text="Application Current Memory Usage" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 41                         <TextBlock Text="0" Margin="10" Name="ApplicationCurrentMemoryUsageTextBlock" FontSize="36" TextAlignment="Center"/>

 42                         <TextBlock Text="Application Memory Usage Limit" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 43                         <TextBlock Text="0" Margin="10" Name="ApplicationMemoryUsageLimitTextBlock" FontSize="36" TextAlignment="Center"/>

 44                         <TextBlock Text="Application Peak Memory Usage" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 45                         <TextBlock Text="0" Margin="10" Name="ApplicationPeakMemoryUsageTextBlock" FontSize="36" TextAlignment="Center"/>

 46                         <TextBlock Text="DeviceTotalMemory" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 47                         <TextBlock Text="0" Margin="10" Name="DeviceTotalMemoryTextBlock" FontSize="36" TextAlignment="Center"/>

 48  

 49                     </StackPanel>

 50                 </Grid>

 51             </controls:PivotItem>

 52  

 53             <controls:PivotItem Header="hardware">

 54                 <Grid>

 55                     <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Height="607" Width="456">

 56                         <TextBlock Text="Is Keyboard Deployed?" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 57                         <TextBlock Text="0" Margin="10" Name="IsKeyboardDeployedTextBlock" FontSize="36" TextAlignment="Center"/>

 58                         <TextBlock Text="Is Keyboard Present?" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 59                         <TextBlock Text="0" Margin="10" Name="IsKeyboardPresentTextBlock" FontSize="36" TextAlignment="Center"/>

 60                         <TextBlock Text="Power Source" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 61                         <TextBlock Text="0" Margin="10" Name="PowerSourceTextBlock" FontSize="36" TextAlignment="Center"/>

 62                     </StackPanel>

 63                 </Grid>

 64             </controls:PivotItem>

 65  

 66             <controls:PivotItem Header="os">

 67                 <Grid>

 68                     <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Height="607" Width="456">

 69                         <TextBlock Text="Operating System" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 70                         <TextBlock Text="0" Margin="10" Name="OperatingSystemPlatformTextBlock" FontSize="36" TextAlignment="Center"/>

 71                         <TextBlock Text="Version" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 72                         <TextBlock Text="0" Margin="10" Name="OperatingSystemVersionTextBlock" FontSize="36" TextAlignment="Center"/>

 73                     </StackPanel>

 74                 </Grid>

 75             </controls:PivotItem>

 76  

 77             <controls:PivotItem Header="clr">

 78                 <Grid>

 79                     <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Height="607" Width="456">

 80                         <TextBlock Text="Major" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 81                         <TextBlock Text="0" Margin="10" Name="ClrMajorTextBlock" FontSize="36" TextAlignment="Center"/>

 82                         <TextBlock Text="Minor" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 83                         <TextBlock Text="0" Margin="10" Name="ClrMinorTextBlock" FontSize="36" TextAlignment="Center"/>

 84                         <TextBlock Text="Revision" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 85                         <TextBlock Text="0" Margin="10" Name="ClrRevisionTextBlock" FontSize="36" TextAlignment="Center"/>

 86                         <TextBlock Text="Build" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 87                         <TextBlock Text="0" Margin="10" Name="ClrBuildTextBlock" FontSize="36" TextAlignment="Center"/>

 88                     </StackPanel>

 89                 </Grid>

 90             </controls:PivotItem>

 91  

 92             <controls:PivotItem Header="unique ids">

 93                 <Grid>

 94                     <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Height="607" Width="456">

 95                         <TextBlock Text="Device Unique ID" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 96                         <TextBlock Text="0" Margin="10" Name="DeviceUniqueIDTextBlock" FontSize="36" TextAlignment="Center" TextWrapping="Wrap"/>

 97                         <TextBlock Text="Windows Live Anonymous ID" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>

 98                         <TextBlock Text="0" Margin="10" Name="WindowsLiveAnonymousIDTextBlock" FontSize="36" TextAlignment="Center" TextWrapping="Wrap"/>

 99                     </StackPanel>

100                 </Grid>

101             </controls:PivotItem>

102         </controls:Pivot>

103     </Grid>

104 </phone:PhoneApplicationPage>

MainPage.cs 

  1 using System;

  2 using System.Globalization;

  3 using System.Windows;

  4 using System.Windows.Threading;

  5 using Microsoft.Phone.Info;

  6  

  7 namespace ABSystemInfo

  8 {

  9     public partial class MainPage

 10     {

 11         readonly DispatcherTimer _timer;

 12  

 13         private long _applicationCurrentMemoryUsage;

 14         private long _applicationMemoryUsageLimit;

 15         private long _applicationPeakMemoryUsage;

 16         private long _deviceTotalMemory;

 17  

 18         private const int AnidLength = 32;

 19         private const int AnidOffset = 2;

 20  

 21         public MainPage()

 22         {

 23             InitializeComponent();

 24             LoadStaticInfo();

 25             _timer = new DispatcherTimer();

 26             _timer.Interval = new TimeSpan(0, 0, 1);

 27             _timer.Tick += TimerTick;

 28             _timer.Start();

 29  

 30         }

 31  

 32         void TimerTick(object sender, EventArgs e)

 33         {

 34             try

 35             {

 36                 _applicationCurrentMemoryUsage = DeviceStatus.ApplicationCurrentMemoryUsage;

 37                 _applicationMemoryUsageLimit = DeviceStatus.ApplicationMemoryUsageLimit;

 38                 _applicationPeakMemoryUsage = DeviceStatus.ApplicationPeakMemoryUsage;

 39  

 40                 _deviceTotalMemory = DeviceStatus.DeviceTotalMemory;

 41  

 42                 ApplicationCurrentMemoryUsageTextBlock.Text = String.Format("{0} MB ({1} KB)", ((_applicationCurrentMemoryUsage / 1024) / 1024), (_applicationCurrentMemoryUsage / 1024));

 43                 ApplicationMemoryUsageLimitTextBlock.Text = String.Format("{0} MB ({1} KB)", ((_applicationMemoryUsageLimit / 1024) / 1024), (_applicationMemoryUsageLimit / 1024));

 44                 ApplicationPeakMemoryUsageTextBlock.Text = String.Format("{0} MB ({1} KB)", ((_applicationPeakMemoryUsage / 1024) / 1024), (_applicationPeakMemoryUsage / 1024));

 45                 DeviceTotalMemoryTextBlock.Text = String.Format("{0} MB ({1} KB)", ((_deviceTotalMemory / 1024) / 1024), (_deviceTotalMemory / 1024));

 46  

 47                 IsKeyboardDeployedTextBlock.Text = DeviceStatus.IsKeyboardDeployed.ToString(CultureInfo.InvariantCulture);

 48                 IsKeyboardPresentTextBlock.Text = DeviceStatus.IsKeyboardPresent.ToString(CultureInfo.InvariantCulture);

 49                 PowerSourceTextBlock.Text = DeviceStatus.PowerSource.ToString();

 50             }

 51             catch (Exception ex)

 52             {

 53                 MessageBox.Show(ex.Message);

 54             }

 55         }

 56  

 57         private void LoadStaticInfo()

 58         {

 59             DeviceFirmwareVersionTextBlock.Text = DeviceStatus.DeviceFirmwareVersion;

 60             DeviceHardwareVersionTextBlock.Text = DeviceStatus.DeviceHardwareVersion;

 61             DeviceManufacturerTextBlock.Text = DeviceStatus.DeviceManufacturer;

 62             DeviceNameTextBlock.Text = DeviceStatus.DeviceName;

 63  

 64             OperatingSystemPlatformTextBlock.Text = Environment.OSVersion.Platform.ToString();

 65             OperatingSystemVersionTextBlock.Text = Environment.OSVersion.Version.ToString();

 66  

 67             ClrBuildTextBlock.Text = Environment.Version.Build.ToString(CultureInfo.InvariantCulture);

 68             ClrMajorTextBlock.Text = Environment.Version.Major.ToString(CultureInfo.InvariantCulture);

 69             ClrMinorTextBlock.Text = Environment.Version.Minor.ToString(CultureInfo.InvariantCulture);

 70             ClrRevisionTextBlock.Text = Environment.Version.Revision.ToString(CultureInfo.InvariantCulture);

 71  

 72             string deviceUniqueId = String.Empty;

 73             for (int i = 0; i < GetDeviceUniqueId().GetLength(0); i++)

 74             {

 75                 deviceUniqueId += GetDeviceUniqueId().GetValue(i);

 76             }

 77  

 78             DeviceUniqueIDTextBlock.Text = deviceUniqueId;

 79             WindowsLiveAnonymousIDTextBlock.Text =

 80                 GetWindowsLiveAnonymousId().ToString(CultureInfo.InvariantCulture);

 81         }

 82  

 83         //Note: to get a result requires ID_CAP_IDENTITY_DEVICE

 84         // to be added to the capabilities of the WMAppManifest

 85         // this will then warn users in marketplace

 86  

 87         public static byte[] GetDeviceUniqueId()

 88         {

 89             byte[] result = null;

 90             object uniqueId;

 91             if (DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out uniqueId))

 92                 result = (byte[])uniqueId;

 93  

 94             return result;

 95         }

 96  

 97         // NOTE: to get a result requires ID_CAP_IDENTITY_USER

 98         //  to be added to the capabilities of the WMAppManifest

 99         // this will then warn users in marketplace

100  

101         public static string GetWindowsLiveAnonymousId()

102         {

103             string result = String.Empty;

104             object anid;

105             if (UserExtendedProperties.TryGetValue("ANID", out anid))

106             {

107                 if (anid != null && anid.ToString().Length >= (AnidLength + AnidOffset))

108                 {

109                     result = anid.ToString().Substring(AnidOffset, AnidLength);

110                 }

111             }

112  

113             return result;

114         }

115     }

116 }

 

你可能感兴趣的:(windows phone)