Makale Özeti

Bu makalemizde son 1-2 makale de değindiğimiz yeni özelliklerin yanı sıra Windows Mobile 5.0 ile mobil yazılım geliştiriciler için sağlanan yeni bir kolaylıktan bahsedeceğiz.Bu kolaylık daha önceleri native code vasıtasıyla cihaz sahibine uygulama içerisinden verdiğimiz pil durum bilgisini C# veya VB.NET içerisinden managed code ile rahatca verebilmektir..

Makale

            Managed Code ile Pil Durumunu Ölçmek

 

            Bu makalemizde son 1-2 makale de değindiğimiz yeni özelliklerin yanı sıra Windows Mobile 5.0 ile mobil yazılım geliştiriciler için sağlanan yeni bir kolaylıktan bahsedeceğiz.Bu kolaylık daha önceleri native code vasıtasıyla cihaz sahibine uygulama içerisinden verdiğimiz pil durum bilgisini C# veya VB.NET içerisinden managed code ile rahatca verebilmektir.İnanin CF’e eklenen her yeni API’nin kullanımını çözdükten sonra bir kez daha windows mobile 5.0 ve dolayısıyle CF 2.0 ın bize getirdiği kolaylıklara hayran oluyorum.Birçok şey için eskiden olduğu gibi takla atmadan gönül rahatlığıyla projelerimizi daha da verimli ve hızlı geliştirebiliyoruz.Eğer eskiden bu iş (pil durumu) nasıl yapılıyordu diye merak ediyorsanız http://pinvoke.net/default.aspx/coredll.SYSTEM_POWER_STATUS_EX?diff=y linkine bir göz atmanızı ivedilikle tavsiye ediyorum..

 

            İsterseniz lafı çok uzatmadan hemen pil durumunu ölçebilmek için gereken referans librarylerini resimdeki gibi uygulamamıza ekleyelim..

 

                                                                                 

 

            Formumuzu da aşağıda ki gibi tasarlıyoruz..

 

                                                                                 

 

            Uygulamamızda yer alacak kodlar aşağıdaki gibidir..

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using Microsoft.WindowsMobile.Status;

using Microsoft.WindowsMobile;

 

namespace PilDurumu

{

    public partial class frmPilDurumu:Form

    {

        public frmPilDurumu()

        {

            InitializeComponent();

        }

 

        private void pBoxPilDurum_Click(object sender,EventArgs e)

        {

            BatteryLevel myLvl = SystemState.PowerBatteryStrength;

            lblPilGucu.Text = "Pil Gücü : "+(myLvl.ToString());

            SystemProperty mySys = SystemProperty.PowerBatteryStrength;

            BatteryLevel myLvl2 = (BatteryLevel)SystemState.GetValue(mySys);

            lblPilSeviye.Text = "Pil Seviye : "+(myLvl2.ToString());

            if (myLvl.ToString()=="High")

            {

                pBarPilGucu.Value = 70;  //% 61-80 arası..Şekilsel ifade için tahmini değer.

            }

            if (myLvl.ToString()=="Low")

            {

                pBarPilGucu.Value = 30;  //% 21-40 arası..Şekilsel ifade için tahmini değer.

            }

            if (myLvl.ToString()=="Medium")

            {

                pBarPilGucu.Value = 50;  //% 41-60 arası..Şekilsel ifade için tahmini değer.

            }

            if (myLvl.ToString()=="VeryHigh")

            {

                pBarPilGucu.Value = 90;  //% 81-100 arası..Şekilsel ifade için tahmini değer.

            }

            if (myLvl.ToString()=="VeryLow")

            {

                pBarPilGucu.Value = 10;  //% 0-20 arası..Şekilsel ifade için tahmini değer.

            }

        }

 

        private void frmPilDurumu_Load(object sender,EventArgs e)

        {

            pBarPilGucu.Minimum=0; // progressbar için gerekli düzenlemeler yapılıyor!..

            pBarPilGucu.Maximum=100;

            pBarPilGucu.Value=0;

        }

    }

}

 

 

            Uygulamamızı çalıştırıp sonucu gözlemlediğimiz de yukarıda verdiğim linke göre cok daha basit ve bir o kadar da kolay bir şekilde managed code dışına çıkmadan sonuçları elde edebiliyoruz..

 

                                                                                             

                       

Şimdilik bu kadar..Takıldığınız bir nokta olursa eralp.erat@savyazilim.com adresinden bana ulaşabilirsiniz..

 

Unutmayalım bilgi paylaşıldıkca değerlidir..

 

Eralp Erat

Mcp, Mcad.NET , Mcsd.NET

HIMS

www.eralperat.com