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 }
  • 相关阅读:
    石油采集
    石油采集
    Redis 笔记与总结7 PHP + Redis 信息管理系统(用户信息的增删改查)
    数据分析电子商务B2C全流程_数据分析师
    数据分析电子商务B2C全流程_数据分析师
    数据挖掘中分类算法小结_数据分析师
    大数据分析或提升企业税务职能价值
    大数据可视化必须避免的三种常见错误
    大数据可视化必须避免的三种常见错误
    数据分析帮你预知商机
  • 原文地址:https://www.cnblogs.com/roucheng/p/3473298.html
Copyright © 2011-2022 走看看