zoukankan      html  css  js  c++  java
  • 获取 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 }
  • 相关阅读:
    leetcode 309. Best Time to Buy and Sell Stock with Cooldown
    leetcode 714. Best Time to Buy and Sell Stock with Transaction Fee
    leetcode 32. Longest Valid Parentheses
    leetcode 224. Basic Calculator
    leetcode 540. Single Element in a Sorted Array
    leetcode 109. Convert Sorted List to Binary Search Tree
    leetcode 3. Longest Substring Without Repeating Characters
    leetcode 84. Largest Rectangle in Histogram
    leetcode 338. Counting Bits
    git教程之回到过去,版本对比
  • 原文地址:https://www.cnblogs.com/roucheng/p/3473298.html
Copyright © 2011-2022 走看看