酢ろぐ!

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

Windows Mobileで現在のバッテリー残量のレベルを取得する

Windows Mobile端末は、名前の通りモバイル端末であるためデスクトップPCとは異なり、常に電源と接続されているとは限りません。

たとえば、音楽再生アプリではバッテリィレベル(バッテリィ残量・充電残量)が低くなったら再生を停止するなど、バッテリィレベルによって動作を変える必要に迫られます。

本記事では現在のバッテリィレベルの取得の仕方をご紹介します。

f:id:ch3cooh393:20141105152610p:plain

バッテリィレベルは、Microsoft.WindowsMobile.Status名前空間を使用する事で簡単に取得する事が出来ます。以下に、サンプルコードを示します。

[参照の追加]より、以下のアセンブリを参照設定に追加しておきます。

  • Microsoft.WindowsMobile
  • Microsoft.WindowsMobile.Status

取得出来るのバッテリィレベルは、以下の5段階です。

レベル 残容量
VeryHigh 81-100%
High 61-80%
Medium 41-60%
Low 21-40%
VeryLow 0-20%

VB.NET

Dim msg As String = String.Empty

Select Case SystemState.BatteryLevel
    Case BatteryLevel.VeryHigh
       msg = "バッテリィレベルが非常に高い"
    Case BatteryLevel.High
       msg = "バッテリィレベルが高い"
    Case BatteryLevel.Medium
       msg = "バッテリィレベルが通常"
    Case BatteryLevel.Low
       msg = "バッテリィレベルが低い"
    Case BatteryLevel.VeryLow
       msg = "バッテリィレベルが非常に低い"
End Select

MessageBox.Show(msg)

C#

string msg = string.Empty;

switch (SystemState.BatteryLevel) {
    case BatteryLevel.VeryHigh:
       msg = "バッテリィレベルが非常に高い";
       break;
    case BatteryLevel.High:
       msg = "バッテリィレベルが高い";
       break;
    case BatteryLevel.Medium:
       msg = "バッテリィレベルが通常";
       break;
    case BatteryLevel.Low:
       msg = "バッテリィレベルが低い";
       break;
    case BatteryLevel.VeryLow:
       msg = "バッテリィレベルが非常に低い";
       break;
}

MessageBox.Show(msg);

バッテリーレベルが変化した事をテストする

(自分の環境でしか試験を行っていないので、他のPCでも同様かの保証は出来ませんが、)[Battery:]を変更しても、即設定値が変更されないようでしたので、一旦ソフトリセットして後、結果が変更されているのを確認しました。

f:id:ch3cooh393:20141105152623p:plain

button1をクリックする事でバッテリィレベルを取得する事が出来ました。

f:id:ch3cooh393:20141105152634p:plain

関連記事

Windows Mobile(.NET Compact Framework)を使ってアプリ開発する際に逆引きとしてお使いください。