端末の情報を取得する


WindowsPhone 7アプリケーションを作成するプログラマは端末の情報を取得したい時があります。
アプリのメモリ使用量を知りたい時やハードウェアキーボードがあるかどうかを取得したいときなどなど

そこで今回は端末の情報を取得するDeviceStatusをサンプルコードを用いて紹介します。

DeviceStatusは下記の情報を得ることができます。

  • アプリのメモリ使用量
  • アプリの割り当てメモリの最大容量
  • アプリの最大メモリ使用量
  • デバイスのハードウェアバージョン
  • デバイスのファームウェアバージョン
  • デバイスの製造元
  • デバイス名
  • デバイスの物理RAMサイズ
  • ハードウェアキーボードの有無
  • ハードウェアキーボードを開いているかどうか
  • 電源供給はバッテリーか外部電源かの情報
  • ハードウェアキーボードの開閉した時のイベント取得
  • 電源供給がバッテリー、外部電源が切り替わったときのイベント取得

詳しい内容は続きを御覧ください。

端末情報を行う

端末情報はDeviceStatusのプロパティから取得することができます。
DeviceStatusが持つプロパティは以下の表の通りになります。
[table “154” not found /]

DeviceStatusが持つイベントについては応用編でご紹介させていただきます。

実際に端末情報を取得しListBoxに端末情報を取得し表示するサンプルを用意しました。
■MainPage.xaml

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <ListBox Height="595" HorizontalAlignment="Left" Margin="12,6,0,0" Name="listBox1" VerticalAlignment="Top" Width="438" />
</Grid>

■MainPage.xaml.cs

    public partial class MainPage : PhoneApplicationPage
    {
        // コンストラクター
        public MainPage()
        {
            InitializeComponent();
            listBox1.Items.Add("アプリのメモリ使用量: " + Microsoft.Phone.Info.DeviceStatus.ApplicationCurrentMemoryUsage);
            listBox1.Items.Add("アプリの割り当てメモリの最大容量: " + Microsoft.Phone.Info.DeviceStatus.ApplicationMemoryUsageLimit);
            listBox1.Items.Add("アプリの最大メモリ使用量: " + Microsoft.Phone.Info.DeviceStatus.ApplicationPeakMemoryUsage);
            listBox1.Items.Add("デバイスのハードウェアバージョン: " + Microsoft.Phone.Info.DeviceStatus.DeviceFirmwareVersion);
            listBox1.Items.Add("デバイスのファームウェアバージョン: " + Microsoft.Phone.Info.DeviceStatus.DeviceHardwareVersion);
            listBox1.Items.Add("デバイスの製造元: " + Microsoft.Phone.Info.DeviceStatus.DeviceManufacturer);
            listBox1.Items.Add("デバイス名: " + Microsoft.Phone.Info.DeviceStatus.DeviceName);
            listBox1.Items.Add("デバイスの物理RAMサイズ: " + Microsoft.Phone.Info.DeviceStatus.DeviceTotalMemory);
            listBox1.Items.Add("ハードウェアキーボードの有無: " + Microsoft.Phone.Info.DeviceStatus.IsKeyboardPresent);
            listBox1.Items.Add("ハードウェアキーボードを開閉: " + Microsoft.Phone.Info.DeviceStatus.IsKeyboardDeployed);
            listBox1.Items.Add("電源供給の種類: " + Microsoft.Phone.Info.DeviceStatus.PowerSource);
        }
    }

このサンプルコードをシミュレータで動かした時の画面は下図のようになります。

DeviceStatusから端末の情報を取得しアプリの情報を得ることが出来ます。