获取 Windows Phone 手机系统信息_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 获取 Windows Phone 手机系统信息

获取 Windows Phone 手机系统信息

 2013/12/13 17:09:30  roucheng  博客园  我要评论(0)
  • 摘要:wpf:1<phone:PhoneApplicationPage2x:Class="ABSystemInfo.MainPage"3xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"4xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"5xmlns:phone="clr-namespace:Microsoft.Phone.Controls
  • 标签:Windows 手机 手机系统

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 }

 

发表评论
用户名: 匿名