酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows PhoneでDeviceStatusクラスを使ってアプリケーションからデバイス情報を取得する

Windows Phone OS 7.1からのサポートされる機能です。Microsoft.Phone.Info.DeviceStatusを使って、アプリケーションからデバイス情報を取得出来ます。

電源の供給元を取得する

// 電源をどこから取得しているのかを判定する
if (Microsoft.Phone.Info.DeviceStatus.PowerSource 
    == Microsoft.Phone.Info.PowerSource.Battery)
{
    // 電源をバッテリーから取得する
}
else
{
    // コンセントに挿していたり、パソコンにUSB経由で動いている
}

電源の供給元が変わったのを取得する

Microsoft.Phone.Info.DeviceStatus.PowerSourceChanged += (s, e) =>
{
    // 電源の取得先が変わった時にイベントが発生する
};

デバイスの名称を取得する

// デバイス名を取得する
var name = Microsoft.Phone.Info.DeviceStatus.DeviceName;
// 出力:"XDeviceEmulator"

デバイスの製造メーカー名を取得する

// デバイスの製造メーカー名を取得する
var manufacturer = Microsoft.Phone.Info.DeviceStatus.DeviceManufacturer;
// 出力:"Microsoft"

**デバイスのファームウェアバージョンを取得する

>|cs|
// デバイスのファームウェアバージョンを取得する
var firmVersion = Microsoft.Phone.Info.DeviceStatus.DeviceFirmwareVersion;
// 出力:"0.0.0.0"

デバイスのハードウェアワークバージョンを取得する

// デバイスのハードウェアワークバージョンを取得する
var hardVersion = Microsoft.Phone.Info.DeviceStatus.DeviceHardwareVersion;
// 出力:"0.0.0.0"

同様のAPIにSystem.EnvironmentクラスのOSVersionプロパティがありますが、こちらはOSのコアとなったバージョンが取得できます(例ではWindows CE 7等)。

var osVersion = System.Environment.OSVersion;
// 出力:"Microsoft Windows CE 7.10.7629"

デバイスの総メモリ量を取得する

// デバイスの総メモリ量を取得する
var memory = Microsoft.Phone.Info.DeviceStatus.DeviceTotalMemory;
// 出力:456298496

アプリケーションの使用メモリ量を取得する

// アプリケーションの使用メモリ量を取得する
var currentMemory = Microsoft.Phone.Info.DeviceStatus.ApplicationCurrentMemoryUsage;
// 出力:7712768

アプリケーションの使用メモリ量のピークを取得する

// アプリケーションの使用メモリ量のピークを取得する
var peekMemory = Microsoft.Phone.Info.DeviceStatus.ApplicationPeakMemoryUsage;
// 出力:7712768

ハードウェアキーボードが使える状態になっているか判定する

// ハードウェアキーボードが使える状態になっているか判定する
var isKeyboradDeployed = Microsoft.Phone.Info.DeviceStatus.IsKeyboardDeployed;
// 出力:false

デバイスにハードウェアキーボードが付いているかどうか判定する

// デバイスにハードウェアキーボードが付いているかどうか判定する
var isKeyboradPresent = Microsoft.Phone.Info.DeviceStatus.IsKeyboardPresent;
// 出力:true